Подключение к серверу при помощи SSH-ключа — простой и надёжный способ защиты сетевых соединений. Ключ позволяет идентифицировать клиента при подключению к серверу без использования пароля. При этом взломать такой ключ почти невозможно, ведь SSH-ключ представляет собой комбинацию из открытой и закрытой части ключа. Открытый ключ хранится на сервере и доступен всем, кто пытается подключиться к устройству. Закрытый есть только у пользователя, поскольку этого требуют правила безопасности.
Метод подключения по SSH-протоколу часто используется ИТ-специалистами, поскольку он не только надёжен, но и даёт массу новых возможностей. Об этом мы рассказывали в статьях «SSH-туннели» и «5 рекомендаций по защите SSH-подключений». Как быстро и просто сгенерировать SSH-ключ? Рассказываем.
SSH-ключ для Windows
Для пользователей Windows предлагается несколько вариантов SSH-подключения к серверу, но наиболее популярным способом считается использование маленького клиента Putty. Его можно скачать с официального сайта в виде инсталлятора и portable-версии. Скачайте клиент, установите/распакуйте его, после чего запустите найденный файл puttygen.exe.
В первом окне клиент покажет, что SSH-ключ отсутствует и предложит его сгенерировать. Выберите нужный тип или оставьте все настройки по умолчанию, тогда клиент будет генерировать SSH длиной 2048 бит. Нажмите Generate.
Putty предложит вам подёргать мышкой или понажимать на клавиши. Это необходимо, чтобы методом псевдослучайных чисел сгенерировать пару из открытого и закрытого ключа.
Клиент покажет, что ключи сгенерированы. Сохраните их ключи на устройстве, используя кнопки Save public key и Save private key.
После этого можно вставить сгенерированный ключ в соответствующее поле для подключения к серверу. Важно действовать именно в такой последовательности, чтобы обезопасить себя от неприятных сюрпризов вроде потери ключа.
SSH-ключ для Linux
Пользователи Linux могут сгенерировать ключ командой ssh-keygen
. Даже если не указывать никаких параметров, всё сохранится так, как надо. В консоли можно использовать не только указанную команду, но и её расширенные версии. Например, существуют такие команды генерации ключей:
- RSA SSH с 4096-битным закрытым ключом —
ssh-keygen -t rsa -b 4096 -C "RSA 4096 bit Keys"
- DSA SSH с 2048-битным закрытым ключом —
ssh-keygen -t dsa -b 1024 -C "DSA 1024 bit Keys"
- ECDSA SSH с 521-битным закрытым ключом —
ssh-keygen -t ecdsa -b 521 -C "ECDSA 521 bit Keys"
- SSH ed25519 (новый алгоритм, добавленный в OpenSSH) —
ssh-keygen -t ed25519
Рекомендуем генерировать пару RSA ключей, их чрезвычайно трудно ломать, и потому они рекомендуются по умолчанию. Приватный (секретный) ключ будет храниться в файле ~/.ssh/id_rsa, а публичный находится в файле ~/.ssh/id_rsa.pub. Оба файла расположены в вашей домашней директории.
После команды $ ssh-keygen -t rsa
консоль покажет следующий диалог:
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Увидев эту надпись, нажмите Enter. Так вы сохраните файлы в директориях, заданных по умолчанию. На следующем этапе система предложит задать пароль для дополнительной защиты SSH-подключения.
- > Enter passphrase (empty for no passphrase): [Type a passphrase]
- > Enter same passphrase again: [Type passphrase again]
Можете указать, можете пропустить, нажав Enter.
Ключ создан, а на консоли появится сообщение:
Командой $ cat ~/.ssh/id_rsa.pub
выведите ключи на экран. Это будет выглядеть примерно так:
Вставьте скопированные ключи в нужные поля. После этого командой $ ssh root@[IP-адрес сервера]
проверьте, установилось ли соединение с сервером.