УНИТе

Портал > Документация > Управление на SSH ключове с PyTTYgen под Windows 10

Управление на SSH ключове с PyTTYgen под Windows 10

Съдържание:

  1. Стартиране на PuTTYgen
  2. Генериране на ED25519 ключове и запазването им като файл, защитен с парола
  3. Генериране на ECDSA ключове и запазването им като файл, защитен с парола
  4. Генериране на RSA ключове и запазването им като файл, защитен с парола
  5. Запазване (конвертиране) на частния SSH ключ в OpenSSH формат
  6. Запазване (конвертиране) на публичния SSH ключ в OpenSSH формат
  7. Отваряне на OpenSSH частен ключ в PuTTYgen и конвертирането му в PuTTYgen формат
  8. Смяна на паролата на частен SSH ключ (и името му)
  9. Изчисляване на цифров отпечатък (fingerpint) на SSH ключ

 

1. Стартиране на PuTTYgen

Инструментът PuTTYgen е част от инсталацията на PuTTY. Ако PuTTY е инсталиран съгласно инструкциите в документа "Инсталиране и актуализиране на PuTTY и помощните му инструменти под Windows 10", PuTTYgen може да бъде стартиран от стартовото меню на Windows 10:

 

2. Генериране на ED25519 ключове и запазването им като файл, защитен с парола

Стартирайте PuTTYgen, както е показано по-горе. След това в секция "Parameters", в прозореца на програмата, изберете "ED25519" (1) и натиснете бутона "Generate" (2):

За да помогнете на генератора на случайни числа в процеса на генериране на ключовете, движете мишката в полето оградено по-долу на картинката, докато лентата над полето не се запълни в зелено:

След като процеса на генериране бъде завършен, трябва да въведете име на ключа срещу "Key comment:", което е формално име, с което ключа е познат локално (не е част от ключа и може да се смени), после два пъти паролата за защита на частния ключ на двойката (1) и накрая натиснете бутона "Save private key" (2):

Натискането на "Save private key" (виж по-горе) ще отвори прозорец на файловия мениджър на Windows, в който ще трябва да укажете името на файла, в който ключовете ще бъдат запазени в криптиран вид (криптирани с паролата, въведена по-горе), и неговото място във файловата система:

 

3. Генериране на ECDSA ключове и запазването им като файл, защитен с парола

Стартирайте PuTTYgen, както е показано по-горе. След това в секция "Parameters", в прозореца на програмата, изберете "ECDSA" (1), след това, пак там, срещу "Curve to use for generating this key:", изберете "nistp 384" (2) и накрая натиснете бутона "Generate" (3):

За да помогнете на генератора на случайни числа в процеса на генериране на ключовете, движете мишката в полето оградено по-долу на картинката, докато лентата над полето не се запълни в зелено:

След като процеса на генериране бъде завършен, трябва да въведете име на ключа срещу "Key comment:", което е формално име, с което ключа е познат локално (не е част от ключа и може да се смени), после два пъти паролата за защита на частния ключ на двойката (1) и накрая натиснете бутона "Save private key" (2):

Натискането на "Save private key" (виж по-горе) ще отвори прозорец на файловия мениджър на Windows, в който ще трябва да укажете името на файла, в който ключовете ще бъдат запазени в криптиран вид (криптирани с паролата, въведена по-горе), и неговото място във файловата система:

 

4. Генериране на RSA ключове и запазването им като файл, защитен с парола

Стартирайте PuTTYgen, както е показано по-горе. След това в секция "Parameters", в прозореца на програмата, изберете "RSA" (1), след това, пак там, срещу "Number of bits in a generated key:", въведете 2048 или 4096 (2) и накрая натиснете бутона "Generate" (3):

За да помогнете на генератора на случайни числа в процеса на генериране на ключовете, движете мишката в полето оградено по-долу на картинката, докато лентата над полето не се запълни в зелено:

След като процеса на генериране бъде завършен, трябва да въведете име на ключа срещу "Key comment:", което е формално име, с което ключа е познат локално (не е част от ключа и може да се смени), после два пъти паролата за защита на частния ключ на двойката (1) и накрая натиснете бутона "Save private key" (2):

Натискането на "Save private key" (виж по-горе) ще отвори прозорец на файловия мениджър на Windows, в който ще трябва да укажете името на файла, в който ключовете ще бъдат запазени в криптиран вид (криптирани с паролата, въведена по-горе), и неговото място във файловата система:

 

5. Запазване (конвертиране) на частния SSH ключ в OpenSSH формат

Подобно конвертиране се налага, когато ключовете, съхранени върху Windows 10 система, трябва да се копират в Linux или Mac OS X базирани системи (в които имате потребителски профил с домашна директория), от които ще влизате в други системи, на база удостоверяване с ключ.

Отбележете, че ключовете, които PuTTY създава и използва, не могат да се използват (понастоящем) от OpenSSH сървърския и клиентски софтуер и именно това налага конвертирането, описано тук.

Стартирайте PuTTYgen, както е показано по-горе, от менюто "File" изберете "Load private key":

и в прозореца на файловия мениджър, който ще се появи след това, изберете файла с ключовете (той ще е с разшиение *.ppk), за да го отворите в програмата:

Въведете паролата, с която е криптирано съдържанието на файла:

Ако е въведена правилната парола, съдържанието на файла ще се зареди в PuTTYgen:

След това, от менюто "Conversions" и в зависимост от това в какъв точно OpenSSH формат (стар или нов) искате да запазите ключовете, изберете:

  • "Export OpenSSH key" (стар формат)

  • "Export OpenSSH key (force new file format)" (нов формат)

и укажете къде във файловата система и под какво име на файл да запазите ключовете (вижте бележките по-долу обясняващи как да смените това име, когато пренесете файла в Linux или Mac OS X системата):

По-нататък, трябва да пренесете така създадения файл (за примера горе това е my_openssh_key.txt) върху Linux или Mac OS X системата, в поддиректория .ssh на вашата домашна дирекория. Там трябва да преименовате файла, за да отговаря на спецификациите за имена на файлове в OpenSSH. Това име се определя от символния низ в началото на реда след "Key fingeprint:" (на картинките по-горе се вижда къде се намира това поле в прозореца на PuTTYgen):

  • Ако веднага след "Key fingerprint:" стои ssh-rsa, my_openssh_key.txt трябва да се запази в Linux или Mac OS X системата като ~/.ssh/id_rsa (изписването ~/.ssh/id_rsa указва, че файла id_rsa се намира в поддиректория .ssh на домашната директория на вашия потребител в Linux или Mac OS X системата)!

  • Ако веднага след "Key fingerprint:" стои ecdsa-sha2-nistp384, my_openssh_key.txt трябва да се запази като ~/.ssh/id_ecdsa (изписването ~/.ssh/id_ecdsa означава, че файла id_ecdsa се намира в поддиректория .ssh на домашната директория на вашия потребител в Linux или Mac OS X системата)!

  • Ако веднага след "Key fingerprint:" стои ssh-ed25519, my_openssh_key.txt трябва да се запази като ~/.ssh/id_ed25519 (изписването ~/.ssh/id_ed25519 означава, че файла id_ed25519 се намира в поддиректория .ssh на домашната директория на вашия потребител в Linux или Mac OS X системата)!

 

6. Запазване (конвертиране) на публичния SSH ключ в OpenSSH формат

Подобно конвертиране се налага, когато ключовете, съхранени върху Windows 10 система, трябва да се използват за влизане в Linux или Mac OS X базирани системи (в които имате потребителски профил с домашна директория).

Отбележете, че ключовете, които PuTTY създава и използва, не могат да се използват (понастоящем) от OpenSSH сървърския и клиентски софтуер и именно това налага конвертирането описано тук.

Стартирайте PuTTYgen, както е показано по-горе и от менюто "File" изберете "Load private key":

и в прозореца на файловия мениджър, който ще се появи след това изберете файла с ключовете (с разшиение *.ppk) за да го отворите в програмата:

Въведете паролата, с която е криптирано съдържанието на файла:

Ако е въведена правилната парола, съдържанието на файла ще се зареди в PuTTYgen:

След това маркирайте с мишката ЦЯЛОТО съдържание, което се намира в клетката под "Public key for pasting into OpenSSH authorized_keys file" и го копирайте, както е показано по-долу на картинката:

Отворете нов документ с Notepad и поставете в него копираното преди това съдържание (или ако имате отворен терминал до дистанционната Linux и Mac OS X система, директно го поставете в съответния authorized_keys файл):

ВНИМАНИЕ! Това съдържание се намира на ЕДИН РЕД въпреки, че визуално, представено в прозореца на PuTTYgen или Notepad, изглежда като разпределено между няколко реда. Бъдете напълно сигурни, че това съдържание е запазено като един ред! В противен случай този публичен ключ е неизползваем!

Имайте предвид следните особености, свързани с така конвертирания OpenSSH публичен ключ:

  • За да влизате чрез ключ в отдалечена Linux или Mac OS X система, ПУБЛИЧНИЯ OpenSSH ключ, запазен по рецептата показана по-горе, трябва да бъде поставен в специален файл.

  • В зависимост от типа на системата или конректните ѝ настройки файлът, в който трябва да се постави публичния OpenSSH ключ, може да се казва по различен начин и да се намира на различно място във файловата система. В Red Hat Enterprise Linux, CentOS, Scientific Linux, по подразбиране това е файла ~/.ssh/authorized_keys (изписването ~/.ssh/authorized_keys указва, че файла authorized_keys се намира в поддиректория .ssh на домашната директория на вашия потребител в отдалечената система). В Debian и Ubuntu, този файл е ~/.ssh/authorized_keys2. Мястото на този файл върху файловата система и неговото име могат да се сменят от файла /etc/ssh/sshd_config.

 

7. Отваряне на OpenSSH частен ключ в PuTTYgen и конвертирането му в PuTTYgen формат

Тази операция е обратна на описаната по-горе в "Запазване (конвертиране) на частния ключ в OpenSSH формат".

Преди да започнете с конвертирането, файла, който съдържа частния ключ в OpenSSH формат, трябва да бъде достъпен за PuTTYgen (копиран локално върху файловата система на Windows, достъпен върху монтирана в Windows отдалечена файлова система).

Стартирайте PuTTYgen, както е показано по-горе и от менюто "Conversions" изберете "Import key":

След това изберете файла, който съдържа частния OpenSSH ключ:

При успешен прочит на така избрания файл, неговото съдържание ще бъде визуализирано в прозореца на PuTTYgen, където трябва да натиснете бутона "Save private key" за да запазите съдържанието в PuTTY формат:

При запазването на съдържанието като файл в този случай, трябва да бъде избрано разширение *.ppk (форматът поддържан в PuTTYgen):

 

8. Смяна на паролата на частен SSH ключ (и името му)

Стартирайте PuTTYgen, както е показано по-горе, от менюто "File" изберете "Load private key":

и в прозореца на файловия мениджър, който ще се появи след това изберете файла с ключовете (с разшиение *.ppk) за да го отворите в програмата:

Ако ключът е в OpenSSH формат, отворете го по начина показан в "Прочитане на OpenSSH частен ключ в PuTTYgen и конвертирането му в PuTTYgen формат"

След като ключът бъде зареден, може да смените паролата му като въведете новата в текстовите полета срещу "Key passphrase:" и "Confirm passphrase:" (може да смените и името на ключа като зададете новото име срещу "Key comment:"), виж (1) долу на картинката, и накрая натиснете "Save private key" (2):

Може да запазите наново криптирания ключ и в OpenSSH следвайки инструкциите дадени в "Запазване (конвертиране) на частния ключ в OpenSSH формат".

 

9. Изчисляване на цифров отпечатък (fingerpint) на SSH ключ

Стартирайте PuTTYgen, както е показано по-горе, от менюто "File" изберете "Load private key":

и в прозореца на файловия мениджър, който ще се появи след това изберете файла с ключовете (с разшиение *.ppk) за да го отворите в програмата:

Ако ключът е в OpenSSH формат, отворете го по начина, показан в "Прочитане на OpenSSH частен ключ в PuTTYgen и конвертирането му в PuTTYgen формат"

Цифровият отпечатък се намира срещу "Key fingerprint":

ВНИМАНИЕ! Не цялото съдържание в текстовото поле срещу "Key fingerprint" представлява цифровия отпечатък на ключа.
В началото на полето има информация за типа на ключа и дължината му, която не е част от отпечатъка. Ще разпознате цифровия отпечатък по това, че е низ от шестнадесетични числа, разделени с двуеточие. На картинката горе той е маркиран в син фон.

 


Последна актуализация: 21 март 2019

2019 УНИТе, Веселин Колев