Настройването на SSH ключове е важна стъпка за всеки, който иска да използва SSH за свързване към отдалечен сървър.
SSH ключовете са двойка криптографски ключове – публичен ключ и частен ключ – които се използват за удостоверяване на потребителя към сървъра.
Публичният ключ се споделя със сървъра, докато частният ключ се съхранява на локалното устройство на потребителя. В тази статия ще разгледаме стъпките, включени в генерирането и конфигурирането на SSH ключове.
1. Създаване на двойка ключове
За да генерирате двойка SSH ключове с помощта на командата “ssh-keygen”, ще трябва да отворите терминал или команден ред на вашия компютър.
В системи, подобни на Linux или Unix, можете да отворите терминал, като натиснете Ctrl+Alt+T или като потърсите „terminal” в менюто на приложенията.
В Windows можете да отворите команден ред, като натиснете Win+R и напишете „cmd“, след което натиснете Enter.
След като отворите комадния ред, трябва да изпълните следната команда:
ssh-keygen -t rsa
След като изпълните командата, ще изскочат няколко допълнителни въпроса:
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Трябва да зададете местоположението и името на двойката ключове:
- Препоръчваме Ви да използвате местоположението по подразбиране, ако все още нямате друг ключ там.
- В случай, че вече имате наличен ключ id_rsa, е добре да използвате друго име, за да избегнете дублиране.
След това ще бъдете подканени да предоставите парола за вашия ключ:
Enter passphrase (empty for no passphrase):
В случай, че не посочите парола при използването на ключа, директно ще се логнете на отдалечения сървър. Все пак, ако желаете повече сигурност, Ви съветваме да добавите парола.
Трябва да видите два нови файла в директория /home/user/.ssh/:
- id_rsa - съдържа частния ключ
- id_rsa.pub - съдържа публичния ключ
Бихте могли да генерирате двойка ключове и със следната команда:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_server.key -C "My server key"
- -t rsa: Указва типа ключ за създаване. Възможните стойности са „rsa1“ за протокол версия 1 и „dsa“, „ecdsa“, „ed25519“ или „rsa“ за протокол версия 2.
- -b 4096: Указва броя на битовете в ключа за създаване.
- -f ~/.ssh/my_server.key: Указва името и пътя на ключа.
- -C "My server key": Създава коментар в края на публичния ключ.
В примера са използвани 4096 бита за създаването на ключа, по подразбиране се използват 2048 бита.
2. Инсталиране на публичния ключ на отдалечен сървър
Използвайте командата scp или ssh-copy-id, за да копирате файла с публичен ключ (напр. /home/user/.ssh/id_rsa.pub) във Вашия акаунт на отдалечения сървър. За да направите това, въведете следната команда на Вашия локален компютър:
ssh-copy-id -i /home/user/.ssh/id_rsa.pub -p22 user@your_server_ip
Ще Ви се появи съобщение:
Number of key(s) added: 1
Now try logging into the machine, with: "ssh -p '22' 'user@your_server_ip'" and check to make sure that only the key(s) you wanted were added.
След като изпълните командата:
ssh -p '22' 'user@your_server_ip'
трябва да въведете паролата за достъп до отдалечения сървър.
Сега всеки път, когато влезете във Вашия отдалечен сървър, няма да бъдете подканяни за парола (освен ако не зададете парола за вашия RSA ключ в началото).
Можете да копирате ключа и със следната команда:
scp -P22 id_rsa.pub user@your_server_ip:~/.ssh/authorized_keys
3. Влизане на отдалечения сървър
След като има частния ключ на локалния компютър и публичният ключ е качен на отдалечената машина, бихме могли да тестваме, дали всичко работи според очакванията ни. Командата за логин на отдалечената машина посредством частния ключ, е следната:
ssh -i /home/user/.ssh/id_rsa user@your_server_ip -p22
В случай, че сте заложили парола при конфигурирането на ключовете, ще трябва да я въведете.
4. Деактивирайте влизането с парола на отдалечения сървър
Като допълнителна защита за вход към отдалечения сървър, бихте могли да забраните достъпа с парола. За целта е необходимо да отворите с текстов редактор файла:
vim /etc/ssh/sshd_config
Открийте PasswordAuthentication и го променете на
PasswordAuthentication no
Запазете файла и рестартирайте sshd услугата:
sudo systemctl reload sshd
Важно е да се уверите, че всички потребители са настроили SSH ключовете си или друг одобрен метод за удостоверяване, преди да деактивирате удостоверяването с парола. В противен случай те може да бъдат заключени от сървъра и да нямат достъп до него, докато проблемът не бъде разрешен.
Генерирането на SSH ключове е решаваща стъпка за всеки, който иска да използва SSH за отдалечен достъп и управление на сървъри.
Като следвате стъпките, описани в тази статия, можете лесно да генерирате нова двойка RSA ключове на Linux и Windows. Не забравяйте да пазите частния си ключ защитен и избягвайте да използвате една и съща двойка ключове за множество сървъри, за да намалите риска от неоторизиран достъп.