Ваш надежный хостинг партнер

В данной статье мы опишем настройку подключения к Linux серверам при помощи ключей. Данный способ подключения может использоваться, например как для удобства подключения, что бы не вводить каждый раз пароли, а так же самое главное для повышения уровня безопасности самого удалённого сервера, так как после настройки подключения по ключам Вы можете отключить в настройках SSH демона на сервере авторизацию по паролям, что исключит перебор паролей ботами. 


Генерация ключа на компьютере\сервере с операционной системой Linux

Первым делом нам необходимо сгенерировать пару открытого и закрытого ключей
Подключаемся к серверу традиционным способом используя логин/пароль
Запускаем команду

ssh-keygen
После выполнения команды утилита задаст вопросы, которые необходимы для генерации ключей:

1) Выбор места расположения сгенерированных ключей. Если ни чего не менять, то по умолчанию ключи появятся в подкаталоге /.ssh/ пользователя, под которым Вы сейчас работаете – рекомендуем так и сделать.
2) Ввод пароля для шифрования ключа – если просто нажать «Enter» ключ будет без пароля. Пароль, это полезное, но не обязательное дополнение. Это дополнительная защита ключа паролем, для повышения уровня безопасности.

По окончании работы утилиты ssh-keygen, если Вы не меняли путь и название файлов, появятся два файла в каталоге пользователя ./.ssh/: 

id_rsa – сам секретный ключ, как раз его Вы в дальнейшем и будете использовать для подключения.
id_rsa.pub – публичный ключ, который необходимо добавить на сервер или сервера к которым планируете подключаться в файл ./.ssh/authorized_keys


Будет полезным перед каждым ключом в файле authorized_keys добавлять комментарий кому или для чего выдан этот ключ

echo "#administrator Petrov's key" >> ./.ssh/authorized_keys

Далее копируем ключ в файл authorized_keys

cat ./.ssh/id_rsa.pub >> ./.ssh/authorized_keys

После копируем закрытый ключ id_rsa к себе на рабочий ПК, и настраиваем терминал для работы через SSH.
К примеру утилита MobaXterm может работать сразу с текущим не конвертированным закрытым ключом, сохранять файл можно с любым расширением, к примеру в *.txt, но для работы через привычную нам утилиту PUTTY закрытый ключ предварительно нужно сконвертировать и добавить в агент, смотрим описание ниже как это сделать.
Важно в обоих случаях в сохраненных соединениях сразу указывать имя пользователя, пример: root@192.168.1.1
На этом первый, самый быстрый способ завершен, можно приступать к работе.

Если Вы хотите добавить Ваш ключ на новый сервер, к которому у Вас есть доступ - подключитесь к серверу и выполните команду:

echo "содержимое_Вашего_файла_id_rsa.pub" >> /home/your_user_name/./.ssh/authorized_keys

Или, если Ваш компьютер так же работает под управлением Linux можете воспользоваться командой:

ssh-copy-id your_user_name@ip_remote_server
 

Аренда выделенного сервера



Конвертация ключа для использования в программе PuTTY

Для конвертации ключа сгенерированного в операционной системе Linux, нам потребуется та же утилита которую мы использовали для генерации ключей - «puttygen.exe».
Запускаем утилиту, в верхнем меню выбираем раздел «Конвертация» => «Импортировать ключ».

В открывшемся окне находим и выбираем наш id_rsa ключ, сгенерированный в ОС Linux или полученный от кого то.

Далее для использования ключа в программе PuTTY нам необходимо сохранить только «Личный ключ» - его мы будем использовать для подключения к серверам через программу PuTTY.
Сохраняем сконвертированный ключ *.ppk в нужный нам каталог (папку)
Добавляем ключ в агент утилиты PUTTY - Pageant



Второй способ настройки завершен, можно приступать к работе

Генерация ключа при помощи программы PuTTY

Для генерации пары ключей в программе PuTTY потребуется открыть программу «puttygen.exe», которая идёт в комплекте с самой PuTTY и находится в том же каталоге. После запуска программы Вам необходимо нажать кнопку «Генерировать» и водить мышкой по окну приложения до тех пор, пока не появится информация о сгенерированной ключевой паре.


В верхнем выделенном красным на скриншоте окне содержится информация, которую необходимо добавить на удалённый сервер в файл «authorized_keys», к которому Вы планируете подключаться. Как это сделать описано далее в статье. Так же рекомендуем сохранить содержимое верхнего окна в отдельный текстовый документ, для удобства добавления ключа на другие сервера.
Далее Вам соответствующими кнопками «Открытый ключ» и «Личный ключ» необходимо сохранить ключевую пару. Личный ключ сохраняется в формате *.ppk – собственно именно он в дальнейшем Вам и потребуется для подключения к удаленному серверу при помощи программы PuTTY.

Заключение

Команды в данной статье оптимизированы для добавления ключей в файл «authorized_keys», а не перезаписи всего файла, на случай, если кто то уже добавил свои ключи на сервер.
После завершения настройки авторизации по ключу, для повышения безопасности сервера Вы можете отключить авторизацию по паролю. Для этого Вам необходимо в файле «/etc/ssh/sshd_config» изменить значение переменной «PasswordAuthentication» на значение «no»

sudo vi /etc/ssh/sshd_config
PasswordAuthentication no

Скопировано