Known issues
-
If you have an variable set inside , or similar,
you exit the WSL console from which the was initially started and attach
to the session from another window, the agent connection will not be usable. This is
due to WSL/Win32 interop limitations. So start before or if
you have Windows 10 version 1809 and newer try adding the flag to the
command line. -
There is a slight delay when exiting a WSL console before the window actually closes.
This is due to a polling loop which works around a WSL incompatibility with Unix session
semantics. -
Sometimes when exiting WSL it gets confused and init process under which pipe-connector.exe is running goes into the
high-CPU consuming loop. Unfortunately it happens after pipe-connector already exited and looks like it happens when there
is no conhost.exe it was attached to initially. Situation may be difficult to reproduce (its timing dependent) when you
are using wsltty, since exiting wslbridge takes time. The only workaround known to me is to properly kill ssh-agent-wsl
by running on exit. Please, note, that if you are running multiple instances of shell, tmux and such this
may not be a trivial undertaking as you need to carefully track when the last shell is exiting. Please see this issue for
some suggestions.
Использование ключа
Ввод пароля для подключения через SSH — раздражающая процедура. У меня почти никогда не получалось ввести его правильно с первого раза. Поэтому я начал искать информацию о том, как подключиться к серверу через SSH без пароля. Простое и безопасное решение — использование ключа. Почему это безопаснее? Потому что пароль можно подобрать. Чтобы исключить такую вероятность, многие пользователи выбирают авторизацию с помощью ключа.
Суть процедуры в формировании двух ключей: публичного и приватного. Первый копируется на сервер, а второй остается на компьютере пользователя и не передается по сети. В таком случае пароль при подключении не требуется. Когда вы подключаетесь к серверу через SSH, публичный ключ взаимодействует с приватным и открывает доступ к удаленному управлению.
Генерирование ключа и подключение на Windows
Для удобства используем программу PuTTy. Вместе с ней устанавливается утилита PuTTYgen — в ней можно сгенерировать публичный и приватный ключи.
- Запустите программу PuTTYgen.
- Нажмите на кнопку Gengerate.
- Водите курсором мышки по рабочему столу, чтобы сгенерировать случайные значения ключей.
- Нажмите на кнопку Save private key, чтобы сохранить на жестком диске приватный ключ. Место хранения может быть любым — его нужно указать в параметрах PuTTY. Сделаем это позже.
- Скопируйте публичный ключ в буфер обмена (Ctrl + C) и закройте генератор ключей.
Теперь нужно перенести публичный ключ на сервер. Запустите программу PuTTY и подключитесь к серверу с помощью пароля. Затем последовательно введите следующие команды:
mkdir ~/.ssh chmod 0700 ~/.ssh touch ~/.ssh/authorized_keys chmod 0644 ~/.ssh/authorized_keys
Эти команды создают на сервере папку и файл для хранения ключей, а также ограничивают к ним доступ — получить его может только владелец.
Следующий шаг — вставка публичного ключа из буфера обмена в файл authorized_keys. Для этого используется команда cat > .ssh/authorized_keys. После ввода команды щелкните по окну терминала правой кнопкой, чтобы вставить скопированный ранее публичный ключ. Для завершения ввода нажмите на сочетание клавиш Ctrl+D.
Вернитесь в настройки PuTTY. Перейдите в раздел Connection — SSH — Auth. Нажмите на кнопку Browse и укажите путь к приватному ключу, который вы ранее сохранили на жестком диске.
Теперь для подключения к серверу через SSH пароль не нужен — достаточно указать логин и IP-адрес сервера.
Генерирование ключа и подключение на Linux и macOS
Теперь посмотрим, как подключиться через SSH ключи на Linux и macOS.
- Запустите терминал на локальном компьютере.
- Выполните команду ssh-keygen, чтобы сгенерировать ключи.
- Нажмите на Enter, чтобы сохранить ключи.
Генератор предложит также задать кодовую фразу для ключа. Это дополнительная мера безопасности: если кто-то получит доступ к вашей локальной машине, то все равно не сможет подключиться к серверу через SSH. Минус один — вам тоже придется постоянно вводить ключевую фразу. Можно отказаться от этой меры защиты, просто нажав на клавишу Enter.
На этом процедура создания ключей завершена. Файлы d_rsa (приватный ключ) и id_rsa.pub (публичный ключ) хранятся в папке ~/.ssh/. Осталось скопировать открытую часть ключа на сервер.
- Вернитесь в терминал.
- Выполните команду ssh-copy-id [email protected], где root — логин для подключения к серверу по SSH, а 185.104.114.90 — IP-адрес или хост сервера.
После выполнения этой команды публичный ключ будет скопирован на сервер. Теперь вы можете подключаться к удаленной машине с помощью логина и IP-адреса — например, ssh [email protected]. Ключи будут сопоставляться автоматически.
Отключение запроса пароля
Суть приватных ключей в том, что они хранятся на локальных компьютерах. Если вы попытаетесь подключиться к серверу с другой машины, на которой нет ключа, то снова увидите запрос на ввод пароля. Чтобы авторизоваться можно было только по ключу, запретите использование пароля.
- Подключитесь к удаленному серверу.
- Выполните команду sudo nano /etc/ssh/sshd_config. Файл sshd_config откроется во встроенном текстовом редакторе.
- Найдите строку PasswordAuthentication yes и измените ее на PasswordAuthentication no.
- Сохраните изменения и перезапустите службу SSH командой sudo service ssh restart.
Авторизация по паролю отключена. Теперь подключиться к серверу можно только с помощью пары ключей.
Устранение проблем
Существует 3 различных уровня отладки. Параметр заставляет ssh выводить отладочные сообщения о своей работе. Это полезно при отладке соединения, проблемах аутентификации и настройки. Несколько параметров увеличивают подробность сообщений. Максимальный уровень подробности равен трём.
Обрыв долгоживущих соединений
Многие устройства доступа к Интернету выполняют преобразование сетевых адресов (NAT). Это процесс, который позволяет устройствам из частной сети, которая обычно находится дома или на работе, получить доступ к другим сетям (например, к Интернету) не смотря на то, что для этой сети выделен только один IP-адрес. К сожалению, не все NAT-устройства одинаково устроены, и некоторые из них могут обрывать долгоживущие TCP-соединения, в том числе, используемые в SSH. Обычно это обнаруживается при внезапной потере возможности взаимодействия с удаленным сервером, хотя сама программа ssh свою работу не прекращала.
Чтобы решить данную проблему, можно настроить клиенты и сервера OpenSSH таким образом, чтобы они посылали незаметные сообщения «keep alive», нацеленные на поддержку и подтверждение использования соединения:
- Чтобы включить поддержку keep alive для всех клиентов подключающихся к вашему локальному серверу установите в файле /etc/ssh/sshd_config параметр (или другое значение в секундах).
- Чтобы включить поддержку keep alive для всех серверов подключенных к вашему локальному клиенту, установите в файле /etc/ssh/ssh_config параметр (или другое значение в секундах).
Проброс X11, но нет никакого проброса или туннелирования
Проблема: После того, как вы сделали необходимые изменения в файлах конфигурации, чтобы разрешить проброс X11, вы обнаруживаете, что приложения X запускаются на сервере, а не передаются клиенту.
Решение: Что скорее всего, в процессе входа через SSH на удаленный сервер или узел переменная DISPLAY либо сбрасывается, либо устанавливается после того, как её установит сеанс SSH.
Чтобы проверить этот вариант, послу удаленного входа выполните следующее:
localhost:10.0
Должно вывестись что-то похожее на или (если на стороне сервера включён параметр ). Если обычное «:0.0» не выводится, проверьте, что переменная DISPLAY не сбрасывается или не переинициализируется в файле $HOME/.bash_profile. Если это так, то удалите или закомментируйте инициализацию переменной DISPLAY, чтобы не дать командам в ~/.bash_profile выполниться в процессе входа SSH:
Не забудьте заменить в команде на подходящее имя пользователя.
Ещё одно решение — создать алиас в файле ~/.bashrc.
ssh-agent
OpenSSH comes with ssh-agent, a daemon to cache and prevent from frequent ssh password entries. When run, the environment variable SSH_AUTH_SOCK is used to point to ssh-agent’s communication socket. The normal way to setup ssh-agent is to run it as the top most process of the user’s session. Otherwise the environment variables will not be visible inside the session.
Depending on the way the graphical user session is configured to launch, it can be tricky to find a suitable way to launch ssh-agent. As an example for the lightdm display manager, you may edit and change /etc/lightdm/Xsession from
into
To tell ssh-agent the password once per session, either run manually or make use of the option.
Подключение по SSH с Windows 10, Linux OS или Mac OS
Внимание! Если вы используете Linux OS или Mac OS, перейдите к шагу №7. В Windows 10 есть встроенный «OpenSSH» клиент, который позволяет получать доступ к серверу через консоль, так же, как и на Linux OS
По умолчанию этот компонент не активирован
В Windows 10 есть встроенный «OpenSSH» клиент, который позволяет получать доступ к серверу через консоль, так же, как и на Linux OS. По умолчанию этот компонент не активирован.
Для его установки следуйте шагам ниже.
1. Откройте «Параметры».
2. Перейдите в раздел «Приложения», нажмите «Дополнительные возможности».
3. В списке найдите «OpenSSH Client», нажмите для раскрытия подробного описания.
4. Нажмите «Установить».
5. Дождитесь завершения установки. После того, как «SSHClient» будет установлен, перезагрузите компьютер для корректного применения настроек. Для командной строки станет доступна утилита SSH.
6. Откройте командную строку/терминал и введите команду со своими значениями:
«ssh [email protected]» — для подключения с помощью пароля; «ssh [email protected] -i «C:Usersusername.sshid_rsa»»: — для подключения с помощью ключа.
username
Имя пользователя, указано справа от кнопки «Открыть консоль»
192.168.1.92
Плавающий IP-адрес вашей машины.
Важно! Если вы создали машину только с приватным интерфейсом, создайте плавающий IP и используйте его при подключении к ВМ по SSH.
C:Usersusername.sshid_rsa
Путь к файлу с приватным ключом в вашем локальном хранилище.
Ключ должен быть в формате PEM.
7. Утилита предупредит, что идёт подключение к неизвестному устройству, и спросит, уверены ли вы, что хотите подключиться. Напишите «yes».
8. (Пункт только для тех, кто подключается с помощью пароля) введите пароль, который вы задали при создании машины
9. Вы подключились к машине.
Счетчики системного монитора
Другой способ наблюдения за агентами аутентификации — отслеживание счетчиков системного монитора на каждом сервере, на котором установлен агент аутентификации. Используйте приведенные глобальные счетчики (# PTA authentications, #PTA failed authentications и #PTA successful authentications) и счетчики ошибок (# PTA authentication errors).
Важно!
Сквозная аутентификация обеспечивает высокий уровень доступности за счет нескольких агентов аутентификации, но не предоставляет возможности балансировки нагрузки. В зависимости от вашей конфигурации не все агенты аутентификации могут получать примерно одинаковое число запросов. Возможно, какой-либо агент аутентификации вообще не получает трафик.
Choosing a good passphrase
You need to change all your locks if your RSA key is stolen. Otherwise the thief could impersonate you wherever you authenticate with that key.
An SSH key passphrase is a secondary form of security that gives you a little time when your keys are stolen. If your RSA key has a strong passphrase, it might take your attacker a few hours to guess by brute force. That extra time should be enough to log in to any computers you have an account on, delete your old key from the .ssh/authorized_keys file, and add a new key.
Your SSH key passphrase is only used to protect your private key from thieves. It’s never transmitted over the Internet, and the strength of your key has nothing to do with the strength of your passphrase.
The decision to protect your key with a passphrase involves convenience x security. Note that if you protect your key with a passphrase, then when you type the passphrase to unlock it, your local computer will generally leave the key unlocked for a time. So if you use the key multiple times without logging out of your local account in the meantime, you will probably only have to type the passphrase once.
If you do adopt a passphrase, pick a strong one and store it securely in a password manager. You may also write it down on a piece of paper and keep it in a secure place. If you choose not to protect the key with a passphrase, then just press the return when ssh-keygen asks.
Отключите брандмауэр
Если вы используете брандмауэр, он может блокировать ваше VPN-приложение. Чтобы узнать, так ли это, вам нужно будет временно отключить брандмауэр и посмотреть, заработает ли VPN. Отключить необходимо как сторонние, так и встроенные брандмауэры (такие как брандмауэр Защитника Windows, например). Отключить брандмауэры нужно для общедоступных и частных сетей. Такой вариант должен быть в настройках ваших брандмауэров.
Это непостоянное решение, и отключение брандмауэров делает ваш компьютер уязвимым для угроз безопасности. Если окажется, что проблема в брандмауэре, вам нужно будет настроить необходимые параметры или перейти на другой брандмауэр.
[править] Интересные вопросы использования SSH
SSH и обратное преобразование DNS
Hey!
When I haven’t logged on to a Xen VM for a while the login process by SSH is
strangely slow —
the login prompt appears fast but the password prompt is dalayed for around
a minute…
Can that issue be related to some Xen setting somehow?
The same behavior shows when trying to connect to the VM on any other
port…
Itamar Reis Peixoto wrote: >try to edit /etc/ssh/sshd_config > >and change UseDNS to NO > >restart ssh server > >-------------------- > >Itamar Reis Peixoto > Unfortunately, that argument doesn't do what you think it does. And it confuses a lot of people!
Here’s the situation at least up through OpenSSH 3.9p1.
OpenSSH, for logging purposes, does a reverse DNS on any contacting IP
address. The UseDNS option says whether to verify that the reverse DNS
matches a valid forward DNS for that host. But disabling UseDNS does
NOT, NOT, NOT* turn off the reverse DNS lookup! Any number of us have
submitted patches for this over the years: I submitted some when I dealt
with large remotely deployed networks. (When you manage thousands of
machines deployed in data centers all over the world, you can be
absolutely certain a lot of them will not have valid reverse DNS, or
even have DNS working properly, and you need to be able to log in
quickly in a crunch.)
The option you need is in your sshd init script. You need to use the
additional options «-u 0», to set the namelength of the recorded DNS
entry to 0 so that the reverse DNS isn’t actually done. (Why the SSH
authors think setting an arglength to 0 should cause undocumented
behavior and not throw an error, instead of obeying the UseDNS option in
the configuraton file more correctly, I leave to people who think the
«chroot» option of OpenSSH actually means a chroot cage for SSH users to
protect them from accessing the filesystem outside their home directory.
It doesn.t.)
I like OpenSSH, I use it a lot, but I’ve disagreed volubly with the
authors on a few points over the years. This is one of them.
Приглашение парольной аутентификации
Хранение открытых ключей в SSH
Удаление скомпрометированных ключей
Удалить скомпрометированные ключи (допустим, для хоста 192.168.15.1):
ssh-keygen -R 192.168.15.1
Автоматическое подключение к запущенном агенту
В ~/.bash_profile добавить:
load_agent() { ssh-agent > ~/.ssh-agent eval `< ~/.ssh-agent` ssh-add } if [ -e ~/.ssh-agent ] then eval `cat ~/.ssh-agent` grep -q ssh-agent /proc/$SSH_AGENT_PID/cmdline >& /dev/null || load_agent else load_agent fi l3-agent . ~/.bashrc
Как автоматизировать ввод пароля при подключении по SSH?
Используем pxssh из pexpect:
import pxssh s = pxssh.pxssh() if not s.login ('localhost', 'myusername', 'mypassword'): print "SSH session failed on login." print str(s) else: print "SSH session login successful" s.sendline ('ls -l') s.prompt() # match the prompt print s.before # print everything before the prompt. s.logout()
Как разрешить выполнение только одной команды при подключении по SSH?
Для этого в ~/.ssh/authorized_keys нужно указать команду перед ключом,
разрешающим подключение:
command="path/to/hg-wrapper",no-pty ssh-rsa SSH-KEY-HERE....
В этом примере разрешается только выполняется скрипта hg-wrapper.
Это может быть нужно для того чтобы ограничить пользователя только возможностью доступа к репозиторию по SSH,
но не к программной оболочке сервера.
Сам скрипт в данном случае выглядит так:
#!/usr/bin/env python import os import re r = re.compile('^hg -R (S%2B) serve --stdio$') match = re.search(r, os.environ) if match: repo_path = match.groups() if os.path.exists(repo_path): os.execvp('hg', )
Естественно, что таким образом можно ограничивать доступ к любым программам.
Используйте другой VPN-протокол
Большинство VPN-сервисов предоставляют возможность выбора IP-протокола для использования. Самыми распространенными являются TCP (англ. Transmission Control Protocol — протокол управления передачей) и UDP (англ. User Datagram Protocol — протокол пользовательских датаграмм). Главное отличие в том, что протокол TCP — это протокол с исправлением ошибок, а значит, он повторно отправляет все, что повреждено или не пришло из-за проблем с соединением. Протокол UDP этого не делает, поэтому он работает быстрее, но может быть менее надежным.
Переключение между протоколами может решить ошибку «Аутентификация VPN не выполнена» за счет ускорения скорости соединения, особенно если вы перейдете с TCP на UDP. Для смены протокола перейдите в настройки своего VPN-приложения. Но помните: после смены протокола качество соединения может ухудшиться.
Генерация SSH ключей в Windows 7/8
Генерация SSH ключа с использованием командной строки (cmd) в операционных системах Windows 7/8 не предусмотрено.
Для генерации воспользуйтесь приложением «PuTTY» и входящим в пакет дополнением «PuTTYgen».
- Скачайте и установите приложение «PuTTY».
- Запустите приложение «PuTTYgen».
- В поле «Type of key to generate» укажите «RSA».
- А для поля «Number of bits in a generated key» установите значение «2048».
- Нажмите «Generate».
Важно! Во время генерации ключа водите курсором в поле «Key» до тех пор, пока ключ не появится в поле
- В поле «Key passphrase» введите надежный пароль.
- Подтвердите пароль в поле «Confirm passphrase».
- Нажмите кнопку «Save private key» и сохраните закрытый ключ.
Внимание! Никогда не передавайте закрытый ключ и пароль сторонним лицам
- Нажмите «Save public key» и сохраните открытый ключ в удобном для вас месте.
- Вы всегда можете открыть и скопировать сохраненные ключи при помощи приложения «Блокнот».
Как выбрать интерфейс (IP) для прослушивания
В системе может быть несколько сетевых интерфейсов с несколькими IP адресами, по умолчанию sshd прослушивает их все, в том числе IPv6 адреса:
ListenAddress 0.0.0.0 ListenAddress ::
Если вы хотите, чтобы компьютер в локальной сети был доступен только для устройств в локальной сети, то можно указать его локальный IP:
ListenAddress 192.168.1.20
Кстати, смотрите статью «Как настроить Kali Linux на использование статичного IP адреса».
Директиву ListenAddress можно использовать несколько раз в одном конфигурационном файле. Разрешены следующие форматы:
ListenAddress hostname|address ListenAddress hostname:port ListenAddress IPv4_address:port ListenAddress :port
Если порт не указан, то sshd будет прослушивать на указанном порту в соответствии со всеми установленными опциями Port в этом файле.
Квалификатор rdomain является необязательным, он имеет отношение к маршрутизации.
Также обратите внимание, что с ListenAddress обязательно должен быть указано имя хоста (адрес) ИЛИ порт. Можно указать отдельно имя хоста (адрес), можно указать отдельно порт, а также можно указать их вместе
Во всех вариантах rdomain может отсутствовать.
Опции командной строки (об их использовании далее) имеют приоритет над директивами конфигурационного файла. В том числе опция для установки используемого порта приводят к тому, что Port в конфигурационном файле игнорируется. Но порты указанные с ListenAddress перезаписывают порты в строке команды.
Вы можете указать конкретный IP, который будет прослушиваться в ожидании подключений. А опцией AddressFamily вы можете выбрать для прослушивания все адреса, только IPv4 или только IPv6:
AddressFamily any
Варианты:
- any (по умолчанию — любые адреса),
- inet (использовать только IPv4),
- inet6 (использовать только IPv6),
Попробуйте лучше VPN
Если вы перепробовали все вышеперечисленные решения и у вас все еще есть проблемы, вы можете подумать о более качественном VPN-сервисе . Бесплатные VPN более низкого уровня могут быть медленными и подвержены другим проблемам с подключением. Напротив, услуги премиум-класса очень быстрые и гораздо реже вызывают проблемы . Например, ExpressVPN предлагает неограниченную пропускную способность и имеет встроенную функцию проверки скорости, которая поможет вам выбрать самый быстрый сервер.
Для тех, кто ограничен в бюджете, NordVPN имеет много тех же функций, что и ExpressVPN, по более доступной цене . Сервис не такой быстрый, но он известен своей надежностью. Или, если вы смотрите много онлайн-контента, вы можете попробовать CyberGhost . Компания гарантирует, что вы всегда будете подключены к самому быстрому доступному серверу, а также имеет серверы, оптимизированные для различных потоковых сервисов .
Все эти VPN предоставляют гарантии возврата денег, так что вы можете попробовать их некоторое время и получить полный возврат средств, если вы не удовлетворены .
SSH Agent Forwarding
Furthermore, the SSH protocol implements agent forwarding, a mechanism whereby an SSH client allows an SSH server to use the local on the server the user logs into, as if it was local there. When the user uses an SSH client on the server, the client will try to contact the agent implemented by the server, and the server then forwards the request to the client that originally contacted the server, which further forwards it to the local agent. This way, and agent forwarding implement single sign-on that can progress transitively.
A wonderful feature of the single sign-on provided by SSH is that it works independent of organizational boundaries and geography. You can easily implement single sign-on to servers on the other side of the world, in cloud services, or at customer premises. No central coordination is needed.
To use agent forwarding, the option must be set to on the client (see ssh_config) and the option must be set to on the server (see sshd_config).
Установка
Проверка установки
В большинстве развертываний Gentoo Linux пакет OpenSSH уже установлен в системе. Это можно проверить с помощью запуска команды ssh. Если пакет установлен, то будет отображена справка по использованию:
usage: ssh port] port:host:hostport] port:host:hostport] ] hostname
Если справка не будет отображена, то ssh либо испорчен, либо не установлен. Также возможно, что пользователь просто захочет пересобрать OpenSSH с новым набором USE-флагов. В любом случае, продолжим с обзора доступных USE.
USE flags for
net-misc/openssh
Port of OpenBSD’s free SSH release
Add support for X11 | |
Adds support for X.509 certificate authentication | |
Enable support for Linux audit subsystem using sys-process/audit | |
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces | |
Enable high performance ssh | |
Add kerberos support | |
Use LDNS for DNSSEC/SSHFP validation. | |
Use the libedit library (replacement for readline) | |
Enable root password logins for live-cd environment. | |
Add support for PAM (Pluggable Authentication Modules)DANGEROUS to arbitrarily flip | |
Build programs as Position Independent Executables (a security hardening technique) | |
Enable scp command with known security problems. See bug 733802 | |
Support for Stream Control Transmission Protocol | |
Include builtin U2F/FIDO support | |
!!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur | |
Enable additional crypto algorithms via OpenSSL | |
!!do not set this during bootstrap!! Causes binaries to be statically linked instead of dynamically | |
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) | |
Enable XMSS post-quantum authentication algorithm |
Как настроить SSH сервер (sshd)
Служба sshd считывает настройки из конфигурационного файла /etc/ssh/sshd_config. Этот файл содержит пары «ключевое слово — аргумент», одна пара на одной строке. Для каждого ключевого слова будет использовано первое полученное значение (исключение составляют несколько директив, которые можно использовать несколько раз, и каждого значение будет учтено, например это Port и ListenAddress).
Опционально аргументы можно заключить в двойные кавычки («), чтобы передать аргументы, содержащие пробелы.
Ключевые слова не чувствительны к регистру, а аргументы чувствительны к регистру.
Многие директивы закомментированы, но они указывают на значение по умолчанию, которое всё равно используется. Если вас устраивает значение по умолчанию, то не нужно ничего менять. Если же вы хотите другое значение, то нужно раскомментировать строку с соответствующей директивой (убрать символ #) и внести изменения.
Дополнительно можно указать опции командной строки — они имеют приоритет над настройками в конфигурационном файле.
7.4. Как сделать импорт или экспорт базы данных через SSH? Работа с БД по SSH
Для импорта сначала загружаете дамп на сервер. Дамп должен быть в формате .sql
Далее подключаетесь на сервер по ssh и выполняете команду:
mysql -u пользователь_БД -p имя_БД < файл_дампа_БД
В случае неудачи всегда будет указанна ошибка из за которой импорт не удался или прервался.
Для экспорта существует утилита, которая позволяет сделать бэкап базы данных в традиционном SQL-формате – mysqldump. Общий вид в командной строке:
mysqldump –u пользователь_БД -p имя-БД > файл_дампа_БД
Также утилита имеет много опций и ключей, рассмотрим несколько основных полезных примеров по использованию mysqldump.
mysqldump -–all-databases -uUSER -pPASSWORD > /path/mysql-db-server.sql
Команда с опцией -–all-databases сохраняет все базы данных пользователя USER на MySQL-сервере.
mysql -uUSER -pPASSWORD < /path/mysql-db-server.sql
Восстанавливает все БД mysql пользователя USER. Если USER — root — то все БД.
mysqldump -uUSER -pPASSWORD DATABASE table1 table2 table3 > /path/ DATABASE_t1-t2-t3.sql
Сохраняет таблицы table1, table2, table3, из базы DATABASE в файле DATABASE_t1-t2-t3.sql.
mysqldump —no-data -uUSER -pPASSWORD DATABASE > /path/DATABASE-schema.sql
Указав опцию —no-data команда сохранит структуру таблиц (без данных) в файле DATABASE_schema.sql.
mysqldump —add-drop-table -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql
Опция —add-drop-table добавит команду DROP TABLE (удаление таблицы) перед созданием таблиц.
mysqldump —databases -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql
Опция —databases добавит команду CREATE DATABASE перед созданием базы данных. Это позволяет не создавать и не задавать базу данных при восстановлении.
mysqldump -uUSER –pPASSWORD –h192.168.0.1 DATABASE > /path/DATABASE.sql
Команда сделает бэкап базы DATABASE с сервера с ip-адресом 192.168.0.1
mysqldump —max_allowed_packet=8M -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql
Опция —max_allowed_packet=8M принудительно изменит размер пакета считываемых данных в оперативную память размером в 8 мегабайт.
mysqldump —quick -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql
Опция —quick заставляет команду записывать данные непосредственно на диск.
mysqldump —default-character-set=cp1251 -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql
Принудительно указываем кодировку cp1251.
mysqldump -uUSER –pPASSWORD DATABASE | gzip -c /path/DATABASE.sql.gz
Этой последовательностью получаем архивированный бэкап с помощью утилиты gzip (для последующего восстановления необходимо будет предварительно извлечь из архива).
Заливаем архив бекапа в базу
gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
или так
zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
Создаём новую базу данных
mysqladmin -u USER -pPASSWORD create NEWDATABASE
Для просмотра списка баз данных можно использовать команду:
mysqlshow -u USER -pPASSWORD
А так же можно посмотреть список таблиц базы:
mysqlshow -u USER -pPASSWORD DATABASE
где:
USER — это имя пользователя базы данных;
PASSWORD — пароль пользователя;
SERVER — это имя (или ip-адрес) сервера базы данных;
DataBase — наименование базы данных;
NameFile.sql — имя файла, в который будет помещен дамп базы данных.
Мой телефон потерялся или был украден
Рекомендуем ознакомиться с информацией по ссылкам ниже:
- Как изменить или сбросить пароль аккаунта Google
В зависимости от ситуации восстановить доступ к аккаунту можно разными способами.
Воспользоваться резервными способами входа в аккаунт
Если ваш основной телефон был потерян или украден, для подтверждения личности можно использовать:
- другой телефон, на котором выполнен вход в аккаунт Google;
- , указанный в разделе «Двухэтапная аутентификация» на странице аккаунта Google;
- резервный код, сохраненный заранее;
- электронный ключ, указанный в разделе «Двухэтапная аутентификация» на странице аккаунта Google.
ssh-agent
При работе с ключами возможны две неудобные ситуации:
- Если при создании ключа вы указали passphrase (пароль для ключа), то вам придется вводить пароль при каждом подключении.
- Если у вас есть несколько ключей для разных целей, то при соединении по придется указывать нужный ключ вручную
ssh-agent решает эти проблемы. Этот агент аутентификации (authentication agent) работает на фоне в *nix-системах. В зависимости от системы, вам, возможно, придется установить и настроить его автозапуск самостоятельно.
Если добавить ключ к агенту, то:
- для него больше не будет спрашиваться passphrase
- не нужно будет вводить ключ вручную — он будет автоматически использован при соответствующем подключении
добавит ключ в запущенный в системе агент. Если у него есть passphrase, то агент попросит ввести его.
Если запустить без аргументов, то будут добавлены ключи , , , и .
Список добавленных в агент ключей можно посмотреть командой :
привязан к сессии. Поэтому, например, если перезагрузить компьютер, то ключи нужно будет добавлять в агент заново.
Подключитесь к другому VPN-серверу
Проблемы с подключением могут быть вызваны тем, что используемый вами VPN-сервер слишком медленный или к нему подключено слишком много пользователей. Большинство VPN-приложений позволяют выбирать из нескольких серверов в каждой доступной локации. Попробуйте подключиться к другому серверу. Это может помочь.
Помните: чем ближе вы к серверу, тем быстрее он, скорее всего, будет работать. Всегда выбирайте ближайший к вам сервер.
Если вы используете VPN через роутер, а не с помощью приложения на устройстве, переключаться между серверами намного сложнее. Способ смены сервера в таком случае будет зависеть от модели используемого вами роутера и VPN-сервиса. Если не знаете, как подключиться к другому серверу, поищите ответ в документации к роутеру и документации, предоставляемой вашим VPN-сервисом.
Setting up SSH agent forwarding
Ensure that your own SSH key is set up and working. You can use our guide on generating SSH keys if you’ve not done this yet.
You can test that your local key works by entering in the terminal:
We’re off to a great start. Let’s set up SSH to allow agent forwarding to your server.
-
Using your favorite text editor, open up the file at . If this file doesn’t exist, you can create it by entering in the terminal.
-
Enter the following text into the file, replacing with your server’s domain name or IP:
Warning: You may be tempted to use a wildcard like to just apply this setting to all SSH connections. That’s not really a good idea, as you’d be sharing your local SSH keys with every server you SSH into. They won’t have direct access to the keys, but they will be able to use them as you while the connection is established. You should only add servers you trust and that you intend to use with agent forwarding.