Чтобы подключаться к серверу по ssh без ввода пароля, вы должны у себя иметь пару открытый и закрытый ключ. А затем сообщить серверу ваш публичный ~/.ssh/id_rsa.pub
ключ. Если пара ключей для вашего пользователя создана, то выполняем следующую команду.
Выполняем команду ssh-copy-id -i ~/.ssh/id_rsa.pub user@remotehost
, где:
- user – пользователь, под которым вы подключаетесь на удалённую машину;
- remotehost – ip-адрес удаленной машины.
Эта команда скопирует на удалённый сервер ваш публичный ключ и добавит его в файл ~/.ssh/authorized_keys
. При желании файл ~/.ssh/authorized_keys
на сервере можно создать вручную и скопировать в него содержимое вашего публичного ключа ~/.ssh/id_rsa.pub
.
После этого вы можете проходить авторизацию на сервере по ssh-ключам без ввода пароля:
ssh user@remotehost
Если после ssh-copy-id
по-прежнему просит ввести пароль, то нужно проверить права на папке .ssh на сервере. На вашу домашнюю директорию не должны стоять права на запись для остальных пользователей. А на файл authorized_keys должны быть права 600.
Выполните следующие команды:?
123 | chmod g-w /home/youruser chmod 700 /home/youruser/ . ssh chmod 600 /home/youruser/ . ssh /authorized_keys |
После этого вы можете без проблем подключаться по ssh без ввода пароля.
Как сгенерировать ssh-ключи?
SSH ключи хранятся в домашней директории пользователей в скрытом каталоге: ~/.ssh/*
Вы можете легко проверить, имеется ли у вас ключ, просмотрев содержимое каталога ~/.ssh/
. Необходимо искать пару файлов с именами «что-нибудь» и «что-нибудь.pub», «что-нибудь» обычно (по умолчанию) называется как id_rsa.
Файл с расширением .pub – это ваш открытый ключ, а второй файл — ваш закрытый ключ. Если у вас нет этих файлов (или даже нет каталога .ssh), вы можете создать их запустив программу ssh-keygen, которая входит в состав пакета SSH в nix-системах.
Для генерации пары ssh-ключей нужно выполнить команду:
ssh-keygen -t rsa
?
1234567891 | $ ssh -keygen -t rsa Generating public /private rsa key pair. Enter file in which to save the key ( /home/vagrant/ . ssh /id_rsa ): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/vagrant/ . ssh /id_rsa . Your public key has been saved in /home/vagrant/ . ssh /id_rsa .pub. The key fingerprint is: 7a:2f:ea:45:60:a0:a6: df :03:e6:54:c3:f4:a0:5c:b0 vagrant@wi-backend-dev The key's randomart image is: +--[ RSA 2048]----+ | ..= | | . B + | | E + + | | o . o . | |. + S | | = o o | | o o . o | | . o.. | | .o. .. | +-----------------+ |
На первый вопрос необходимо указать расположение файла для сохранения ключа (по умолчанию будет .ssh/id_rsa), затем дважды ввести пароль, который вы можете оставить пустым, если не хотите его вводить каждый раз, когда используете ключ.
На этом всё, пара ключей (открытый id_rsa.pub и закрытый id_rsa) успешно созданы! Далее может потребоваться сообщить ваш открытый ключ серверу для авторизации без пароля.