Как сгенерировать SSH-ключи: публичный и приватный

Для безопасного соединения с удаленным сервером лучше использовать для входа не логин и пароль, а SSH или SFPT и для этого понадобится сгенерировать безопасные SSH-ключи. SSH означает Secure Shell, что переводится буквально, как «безопасная оболочка», и представляет из себя сетевой протокол, который дает возможность подключить через зашифрованное соединение. И слово «протокол» здесь прямо означает набор строгих правил и соглашений о том, как именно могут соединяться два или несколько устройств. В этой короткой заметке я сохранил инструкцию, как сгенерировать пару SSH-ключей, один приватный, а второй публичный.

Как создать SSH-ключи в Windows 11 (Windows 7, Windows 8, Windows 10)

1. Скачайте программу PuTTy и установите.

2. Запустите PuTTYgen.

3. Откройте меню «Key«.

4. Выберите пункт «SSH-2 RSA key«.

5. В разделе «Parameters» выберите пункт RSA

6. В поле «Number of bits in a generated key» (Количество бит в сгенерированном ключе) введите не менее 2048, а лучше 4096.

7. В разделе «Actions» нажмите на кнопку «Generate«.

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

9. Скопируйте публичный ключ целиком (обратите внимание на полосу прокрутки). Ключ будет примерно таким:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgjZelKtL7P7z4RjJAkgkIPAV2DSzsdYzz0Kgb76QbYXWNRSoLIX9i3/Sf8EHL4SNHhqkKhuqAaiDKi/xsXgeeTQzSAKmrb/aDx8AAp8YxlZYt/vgbwEnJdh1aNDcna+69fYQt5NTso+oChYfbiDC/3Ys+ADfB6fvW5Np70WFacRZ/boEsZRgw40zaFix2idLWKrzc5JHxTFQ6dJ4hlaAkPQGuQB8Iw2n8FWhoFJ/n4rqthDq5gvjPNjvTqxB7Aj+byhapSVIFEt0kqAkucjXfCuwRosWa4EtOHd2E9/TobiPCMsRlwlXcdzJge1I/5ADycUUXCWlt6Ry1LK3kKjg5WjJm9tD1neGTTxeSctZ7Y5BnwF/vA9zyI77IDpfZpRAu/8Qsl2EN5Oq9AvRNY6pb52cHCwUsKHAEIDKgS/xS8S2k2SBB4ZLxezShZSoMGG9jMN5kC1hNKbStEPLRkCU7qV67IgNNuTgsKliabpcHg8jiRCOkSDD+c0PmB3R6hv0Q520j5A1fSQocg51hXtQhxb3V9HscV0K6x4flH3O3jFEC/Wtd70BTzSit/6/+sC++A9iWWmSlQhiYvXxYUbuhs4VmTWSQvIY1SsGcGsD0O8T+Bwvwdw91Oe5MSh4p93E3jqYXyGWLQymuPXkblfNhl0SmnyGQcdEbTFTqLnnQ2w== rsa-key-20251216

10. И вставьте в поле, например, в DigitalOcean.

11. Советую заполнить необязательные поля «Key passphrase» и «Cofirm passphrase«, введя кодовую фразу для доступа к приватному SSH-ключу (это по сути пароль к нему).

12. Сохраните себе публичный SSH-ключ, нажав на кнопку «Save public key«.

13. И сохраните приватный SSH-ключ, нажав на кнопку «Save private key«.

14. Именно приватный ключ позволит вам подключаться по SSH или SFTP протоколу.

Как создать SSH-ключи в MacOS или Linux (Ubuntu, Linux Mint, Fedora и т.д.)

1. Откройте окно Terminal.

2. Введите команду:

ssh-keygen -b 2048 -t rsa -C "your_username" -f filename

— Параметр -b означает длину ключа и должна быть равна минимум 2048, а максимальная 4096.

— Параметр -C означает комментарий и вместо your_username в кавычках укажите свое значение, этот параметр необязательный, но желательный, и будет добавлен в конец ключа.

— Параметр -f означает файл и вместо filename без кавычек укажите имя файла ключа и он будет сохранен в каталоге ~/.ssh/filename (этот параметр необязательный, если его не указать, файл будет сохранен с названием id_rsa).

3. Нажмите клавишу Enter и следуйте инструкциям.

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

Enter passphrase (empty for no passphrase): 
Enter same passphrase again:

5. После этого будет создана пара SSH-ключей и вы увидите сообщение в терминале:

Your identification has been saved in **filename**.
Your public key has been saved in **filename.pub**.

где вместо filename будет имя файла, которое вы указали или если не указали, то по умолчанию будет id_rsa.

6. Для вывода содержимого публичного SSH-ключа введите в терминал команду:

cat ~/.ssh/filename.pub

Будет примерно так:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDgjZelKtL7P7z4RjJAkgkIPAV2DSzsdYzz0Kgb76QbYXWNRSoLIX9i3/Sf8EHL4SNHhqkKhuqAaiDKi/xsXgeeTQzSAKmrb/aDx8AAp8YxlZYt/vgbwEnJdh1aNDcna+69fYQt5NTso+oChYfbiDC/3Ys+ADfB6fvW5Np70WFacRZ/boEsZRgw40zaFix2idLWKrzc5JHxTFQ6dJ4hlaAkPQGuQB8Iw2n8FWhoFJ/n4rqthDq5gvjPNjvTqxB7Aj+byhapSVIFEt0kqAkucjXfCuwRosWa4EtOHd2E9/TobiPCMsRlwlXcdzJge1I/5ADycUUXCWlt6Ry1LK3kKjg5WjJm9tD1neGTTxeSctZ7Y5BnwF/vA9zyI77IDpfZpRAu/8Qsl2EN5Oq9AvRNY6pb52cHCwUsKHAEIDKgS/xS8S2k2SBB4ZLxezShZSoMGG9jMN5kC1hNKbStEPLRkCU7qV67IgNNuTgsKliabpcHg8jiRCOkSDD+c0PmB3R6hv0Q520j5A1fSQocg51hXtQhxb3V9HscV0K6x4flH3O3jFEC/Wtd70BTzSit/6/+sC++A9iWWmSlQhiYvXxYUbuhs4VmTWSQvIY1SsGcGsD0O8T+Bwvwdw91Oe5MSh4p93E3jqYXyGWLQymuPXkblfNhl0SmnyGQcdEbTFTqLnnQ2w== rsa-key-20251216