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

ssh-ключ

В данной статье я опишу как сгенерировать SSH-ключ для авторизации на виртуальном сервере без пароля. Генерировать SSH-ключ мы будем на Windows через программу PuTTY и с помощью Linux.

Использование SSH-ключей позволяет осуществлять авторизацию без пароля. При этом такой способ авторизации намного безопаснее авторизации по паролю. Пароль могут взломать, а ключи расшифровать практически невозможно.

Secure SHell-ключ состоит из открытого и закрытого ключей, которые представляют из себя длинные последовательности символов. Открытый ключ загружается на сервер, а закрытый ключ используется в клиенте для подключения.

Усилить защиту можно добавлением кодовой фразы в закрытый ключ.

Создание SSH-ключа на Windows

На Windows ключи создаются с помощью бесплатной программы PuTTYgen.

После установки запускаем PuTTYgen. В поле «Type of key to generate» проверяем чтобы был выбран тип ключа RSA и в «Number of bits in generated key» было установлено значение 2048.

Если все верно, то нажимаем Generate. После этого двигайте в случайных направлениях мышку для генерации случайных последовательностей.

По окончании генерации вам будет выдан Public key, который необходимо загрузить на сервер.

В поле Key passphrase можно ввести кодовую фразу, но это необязательно. Кодовая фраза имеет большие преимущества — безопасность ключа, независимо от способа его шифрования, по-прежнему зависит от того, что он никому не виден, если закрытый ключ с защитой кодовой фразой попадает в руки хакерам, они не смогут использовать ключ для входа до тех пор, пока не угадают кодовую фразу. Единственный недостаток фразы в том, что Вы должны вводить его каждый раз при подсоединении к серверу.

В поле Confirm passphrase повторите ввод фразы.

Сохраните сгенерированные SSH-ключи в любое удобное для вас место нажав соответствующие кнопки Save private key и Save public key.

Генерация ключа на сервере Linux

Для начала необходимо сформировать пару зашифрованных ключей на клиентской машине (ваш компьютер) с помощью команды:

ssh-keygen -t rsa

После того как вы введете команду, потребуется ввести имя файла в котором будет храниться закрытый ключ и кодовую фразу. О преимуществе и недостатке кодовой фразы я писал выше.

Если Вы хотите выбрать значение предложенное по умолчанию, нажмите Enter.

В примере open-key теперь расположен в /root/.ssh/id_rsa.pub, закрытый ключ теперь расположен в /root/.ssh/id_rsa.