Как сгенерировать 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.