1. Генерация ключа на сервере с ОС семейства Windows
Для начала необходимо создать пару ключей на клиентской машине (ваш компьютер) с помощью программы PuttyGen. https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
После установки запускаем PuTTYgen, в меню Type of key to generate выбираем RSA и проверяем значение поля Number of bits in generated key, оно должно быть равно 2048. Далее нажимаем Generate и свободно перемещаем курсор по экрану для выработки случайных данных.
В верхнем поле появится публичный ключ, который должен храниться на сервере.
В поле Key passphrase введите кодовую фразу. Использование кодовой фразы не является обязательным. Кодовая фраза имеет большие преимущества — безопасность ключа, независимо от способа его шифрования, по-прежнему зависит от того, что он никому не виден, если закрытый ключ с защитой кодовой фразой попадает в руки хакерам, они не смогут использовать ключ для входа до тех пор, пока не угадают кодовую фразу. Единственный недостаток фразы в том, что Вы должны вводить его каждый раз при подсоединении к серверу.
В поле Confirm passphrase повторите ввод фразы.
Сохраните сгенерированные ключи в любое удобное для вас место нажав соответствующие кнопки Save private key и Save public key.
2. Генерация ключа на сервере с ОС семейства Linux, MAC
Для начала необходимо сформировать пару зашифрованных ключей на клиентской машине (ваш компьютер):
ssh-keygen -t rsa
После того как Вы введете команду, потребуется ввести имя файла в котором будет храниться закрытый ключ и кодовую фразу. Применение специальной фразы не является необходимым, но она имеет ряд преимуществ — вне зависимости от способа шифрования, надежность по-прежнему зависит от того, что он никому не виден, если закрытый ключ с защитой кодовым выражением попадает в руки хакерам, они не смогут использовать ключ для входа до тех пор, пока не угадают кодовую фразу. Единственный недостаток выражения в том, что Вы должны вводить ее каждый раз при соединении с сервером.
Chapter 1. Доступ к серверам через SSH-ключи
Section 1. Подключение к серверу с компьютера с ОС семейства Линукс
Теперь копируем публичный ключ на удаленный SSH сервер, через команду по ssh:
cat /home/user/id_rsa.pub | ssh 192.168.50.50 "cat >> ~/.ssh/authorized_keys"
где:
192.168.50.50 — ip адрес вашего сервера
/home/user/id_rsa.pub — путь до файла с публичным ключом
Section 2. Подключение к серверу с компьютера с ОС семейства Windows
Примечание: Putty — программа для подключения к удаленным машинам по протоколам SSH, TCP, Rlogin, Telnet. В командной строке Windows PowerShell можно использовать утилиту plink.exe входящую в набор.
Для подсоединения необходимо настроить Putty. Открываем приложение, выбираем Default Settings и нажимаем Load.
В меню слева переходим Connection -> SSH -> Auth, и в поле прописываем путь до сгенерированного приватного ключа.
Далее возвращаемся на вкладку Session и сохраняем настройки по-умолчанию кнопкой Save.
После соединения введите логин и кодовую фразу, если требуется.