Аутентификация с публичным ключом SSH основана на криптографических алгоритмах, которые генерируют пару отдельных ключей, приватный и публичный. Приватный ключ, который используете для подключения к удаленному серверу, вы храните на компьютере. Но публичный ключ Вы можете передать кому угодно, не ставя под угрозу приватный.
К примеру Вы уже пробрели сервер из личного кабинета. Как это сделать описано в данной статье. Далее в личном кабинете скопируйте данные доступа из Инструкции.
Далее скачаем программу Putty, что бы подключится к серверу. Или же можете воспользоваться альтернативными программами.
В поле Host Name (or IP address) вводим IP Вашего сервера. В поле Port вводим 22.
Для генерации пары ключей, есть утилита ssh-keygen. По умолчанию она уже установлена, Она создает пару 2048-битных ключей RSA, которые нам подходят.
От имени пользователя, для которого нужно создать ключи выполнить команду (в данном случае это root):
ssh-keygen
На задаваемые вопросы в процессе генерации, можете просто нажать Enter. Так как наша цель просто сгенерировать ключ.
И получаем приблизительную картину:
После этого, содержимое файла id_rsa.pub , следующей командой, помещаем в файл ~/.ssh/authorized_keys:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
Для безопасности ставим нужные права:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Теперь, что бы авторизоваться по созданному ключу, необходимо включить аутентификацию по ключу в файле /etc/ssh/sshd_config. Для этого отредактируем его.
vim /etc/ssh/sshd_config
Находим строку PubkeyAuthentication , расскоментируем ее если она закомментирована, и приводим ее к виду:
PubkeyAuthentication yes
Сохраняем изменения.
После чего перезапускаем службу:
service sshd reload
Теперь выводим в консоль ключ, что бы скопировать себе на ПК.
cat ~/.ssh/id_rsa
Копируем от начала:
-----BEGIN OPENSSH PRIVATE KEY-----
До конца:
-----END OPENSSH PRIVATE KEY-----
Добавляем в PuttyGen. Данная программа установилась вместе с Putty.
После этого сохраняем публичный и приватный ключи.
Можем теперь использовать приватный ключ для подключения по SSH.
Что бы его подключить для использования в авторизации, выберите его как показано на рисунку.
После этого возвращаемся в категорию Session, в поле Host Name (or IP adress) вводим IP Вашего сервера. В поле Port вводим 22. В Поле Saved Sessions, введите любое имя, и нажмите Save.
Теперь для подключения по ключу, выберите свой сервер из списка Saved Sessions, и нажмите Load и Open.
Теперь Вы можете подключаться данным способом не вводя пароль, и при этом защитив свое подключение.
В следующей статье мы еще обезопасим наш сервер и подключение к нему, отключив авторизацию по паролю, и сменив стандартный порт 22 на не стандартный.