В данной статье мы опишем настройку подключения к 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