Благодаря SSH-ключам можно произвести аутентификацию без пароля. Ключи представляют собой набор из сотен различных символов, общая длина часто составляет от 1024 до 4096 бит.
Для аутентификации нужно два SSH-ключа — публичный и приватный.
Публичный ключ
Публичный, или открытый, ключ доступен всем. Он используется для шифрования данных при обращении к серверу. Проще говоря, это набор символов, при помощи которых мы шифруем информацию.
При передаче публичного ключа не нужно подстраховываться — даже если он попадет в руки злоумышленников, они не смогут его использовать. Открытый ключ — лишь замок на двери, за которой находится важная информация. Без второго SSH-ключа он не имеет смысла.
Приватный ключ
Приватный, или личный, SSH-ключ — это ключ к замку. Он расшифровывает данные. С ним нужно быть в разы осторожнее: хранить, соблюдая правила безопасности, и не передавать вторым лицам. При генерации SSH-ключей закрытый ключ можно запаролить, чтобы обеспечить дополнительную защиту.
Генерация SSH ключей
Заметка
Ключи будем генерировать на вашем рабочем компьютере, а не на сервере! Можно сгенерировать и на сервере, но если вы работаете в Windows, то нужна будет дополнительная конвертация. В данной статье не будем рассматривать этот вариант.
С официального сайта разработчика скачайте и установите PuTTY.
Если скачиваете пакет установки, то после установки у вас будет весь набор утилит. Так же можно скачать их по отдельности, нам понадобятся: putty.exe и puttygen.exe
Запустите puttygen.exe, в открывшемся окне выберите классический и повсеместно использующийся тип ключа для генерации — RSA. Длину оставляем 2048 бит и нажимаем кнопку нажмите Generate (Генерировать)
-
Во время генерации нужно водить курсором по серой области внутри окна до заполнения зеленой полоски. Это позволит улучшить защищенность генерируемого ключа, благодаря созданию псевдослучайности.
-
После успешной генерации нужно сохранить публичный и приватный ключ на компьютере, кнопками Save public key (Открытый ключ) и Save private key (Личный ключ)
-
Сохраните приватный (личный) ключ в надежное место и никому его не передавайте. При утере этого ключа вы не сможете восстановить его. Публичный ключ, в случае утери, можно сгенерировать с помощью приватного ключа. Для доступа к разным серверам можно использовать одну и ту же пару ключей, необязательно каждый раз создавать новую.
Откройте терминал на рабочем компьютере (не подключаясь к серверу по SSH) и введите команду:
ssh-keygen -t rsa
Появится сообщение:
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Нажмите Enter. Тем самым подтвердите создание ключей в вашей локальной папке.
После этого система предложит установить пароль на ключ. Можно установить пароль для большей безопасности, его нужно будет вводить каждый раз при аутентификации, но лучше пока это пропустить нажав Enter, тем самым установив пустой пароль.
Если все прошло успешно, то вы получите сообщение Your identification has been saved in …
На этом настройка ключей завершена.
Чтобы получить сгенерированный открытый ключ введите команду:
cat ~/.ssh/id_rsa.pub
Откройте терминал на рабочем компьютере (не подключаясь к серверу по SSH) и введите команду:
ssh-keygen -t rsa
Появится сообщение:
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Нажмите Enter. Тем самым подтвердите создание ключей в вашей локальной папке.
После этого система предложит установить пароль на ключ. Можно установить пароль для большей безопасности, его нужно будет вводить каждый раз при аутентификации, но лучше пока это пропустить нажав Enter, тем самым установив пустой пароль.
Если все прошло успешно, то вы получите сообщение Your identification has been saved in …
На этом настройка ключей завершена.
Чтобы получить сгенерированный открытый ключ введите команду:
cat ~/.ssh/id_rsa.pub