Крайното ръководство за SSH - Настройка на SSH ключове

Добре дошли в нашето крайно ръководство за настройка на SSH (Secure Shell) ключове. Този урок ще ви преведе през основите на създаването на SSH ключове, както и как да управлявате множество ключове и двойки ключове.

Създайте нова двойка SSH ключове

Отворете терминал и изпълнете следната команда:

ssh-keygen

Ще видите следния текст:

Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):

Натиснете enter, за да запазите ключовете си в /home/username/.sshдиректорията по подразбиране .

След това ще бъдете подканени да въведете парола:

Enter passphrase (empty for no passphrase):

Препоръчително е да въведете парола тук за допълнителен слой сигурност. Като зададете парола, можете да предотвратите неоторизиран достъп до вашите сървъри и акаунти, ако някой някога получи задържане на вашия частен SSH ключ или вашата машина.

След като въведете и потвърдите паролата си, ще видите следното:

Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/qRoWhRcIBTw0D4KpTUyK6YepyL6RQ2CQrtWsaicCb4 [email protected] The key's randomart image is: +---[RSA 2048]----+ | .o=+.... | |+.*o+o . | |+X.=o o | |@.=.oo . | |=O ...o S | |o.oo . . | |.E+ . . . . | |oo . ... + | |=.. .o. . . | +----[SHA256]-----+

Вече имате публична и частна двойка SSH ключове, която можете да използвате за достъп до отдалечени сървъри и за обработка на удостоверяване за програми от командния ред като Git.

Управление на множество SSH ключове

Въпреки че се счита за добра практика да имате само една двойка публично-частни ключове на устройство, понякога трябва да използвате множество ключове или имате неортодоксални имена на ключове. Например може да използвате една двойка SSH ключове за работа по вътрешни проекти на вашата компания, но може да използвате различен ключ за достъп до сървърите на клиента. На всичкото отгоре може да използвате различна двойка ключове за достъп до вашия собствен частен сървър.

Управлението на SSH ключове може да стане тромаво веднага щом трябва да използвате втори ключ. Традиционно бихте използвали ssh-addза съхранение на ключовете си ssh-agent, като въвеждате паролата за всеки ключ. Проблемът е, че ще трябва да правите това всеки път, когато рестартирате компютъра си, което бързо може да стане досадно.

По-доброто решение е да автоматизирате добавянето на ключове, да съхранявате пароли и да посочите кой ключ да използвате при достъп до определени сървъри.

SSH config

Въведете SSH config, който е конфигурационен файл за потребител за SSH комуникация. Създайте нов файл: ~/.ssh/configи го отворете за редактиране:

nano ~/.ssh/config

Управление на персонализиран именуван SSH ключ

Първото нещо, което ще решим с помощта на този configфайл, е да избегнем необходимостта от добавяне на персонализирани SSH ключове с помощта ssh-add. Ако приемем, че вашият частен SSH ключ е именуван ~/.ssh/id_rsa, добавете следното към configфайла:

Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes

След това се уверете, че ~/.ssh/id_rsaго няма, ssh-agentкато отворите друг терминал и изпълните следната команда:

ssh-add -D

Тази команда ще премахне всички ключове от активната в момента ssh-agentсесия.

Сега, ако опитате да затворите хранилище на GitHub, вашият configфайл ще използва ключа на ~/.ssh/ida_rsa.

Ето някои други полезни примери за конфигуриране:

Host bitbucket-corporate HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_corp IdentitiesOnly yes

Сега можете да използвате git clone [email protected]:company/project.git

Host bitbucket-personal HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes

Сега можете да използвате git clone [email protected]:username/other-pi-project.git

Host myserver HostName ssh.username.com Port 1111 IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes User username IdentitiesOnly yes

Сега можете да SSH във вашия сървър с помощта ssh myserver. Вече не е необходимо да въвеждате порт и потребителско име всеки път, когато SSH във вашия частен сървър.

Управление на пароли

Последното парче от пъзела е управление на пароли. Въвеждането на парола може да стане много досадно всеки път, когато инициализирате SSH връзка. За да заобиколим това, можем да използваме софтуера за управление на пароли, който се доставя с macOS и различни дистрибуции на Linux.

За този урок ще използваме програмата за достъп на Keychain на macOS. Започнете, като добавите своя ключ към Keychain Access, като предадете -Kопцията на ssh-addкомандата:

ssh-add -K ~/.ssh/id_rsa_whatever

Сега можете да видите вашия SSH ключ в Keychain Access:

Достъп до ключодържател

Но ако премахнете ключовете от ssh-agentс ssh-add -Dили рестартирате компютъра си, вие ще бъдете подканени за парола отново, когато се опитате да използвате SSH. Оказва се, че има още един обръч, през който да скочите. Отворете вашия SSH configфайл, като стартирате nano ~/.ssh/configи добавите следното:

Host * AddKeysToAgent yes UseKeychain yes

С това, когато стартирате, sshтой ще търси ключове в Keychain Access. Ако го намери, повече няма да бъдете подканени да въведете парола. Ключовете също ще се добавят автоматично към ssh-agentвсеки път, когато рестартирате машината си.

Сега, когато знаете основите на създаването на нови SSH ключове и управлението на множество ключове, излезте навън и sshдо сърце!