SSH достъп с помощта на RSA ключове

Малка инструкция за организиране на SSH достъп до отдалечен Linux сървър. Спомнете си, че стандартният метод за удостоверяване на потребителя на Unix сървър (Linux, FreeBSD) при достъп чрез SSH е двойка вход и парола. Но влизането в тях не винаги е удобно, особено ако има много такива сървъри. Има алтернатива на този тип достъп - организиране на SSH достъп с помощта на двойка RSA ключове (публични и частни) и парола (която по принцип не е задължителна).

В тази статия ще разгледаме използването на този тип достъп, който може да бъде реализиран с помощта на една от най-популярните програми за работа върху SSH   - PuTTY.

За работа ни трябват следните помощни програми от семейство PuTTY:

  • puttygen.exe - пакет за създаване на ключови двойки
  • putty.exe - самия терминал ssh
  • pscp.exe - scp програма за копиране на файлове

Генерирайте чифт RSA ключове

За да направите това, стартирайте помощната програма PuTTYgen, уверете се, че типът ключ е „SSH-2 RSA„И натиснете бутона“Генериране".

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

На полето „Ключов коментар“ можете да посочите описание на ключ (то ще бъде показано по време на удостоверяване на ключовете).

На полето „Ключова парола“ и „Потвърждаване на парола“ указва паролата за активиране на ключа (той ще бъде поискан при свързване). Ако не зададете парола, връзката ще се извърши без парола: тя е много удобна, но не е много безопасна, защото за достъп до сървъра, нападател просто трябва да открадне файл с вашия личен ключ от вас (поради което се препоръчва да пазите тайната на частния ключ: на външно USB устройство, криптиран том и т.н.).

След това натискаме бутонитеЗапазване на публичен ключ"А"Запазване на частния ключ„И запишете съответно публичните и частните ключове във файл с имена, например:“public.key"А"private.ppk".

Конфигурирайте публичния ключ на Linux сървъра.

Файл с публичен ключ "public.key»Необходимо е да се копира на Linux сървъра, към който имате намерение да се свържете. За целта използвайте помощната програма pscp.exe. Командата за копиране на файл ще изглежда така:

pscp c: \ key \ public.key [email protected]: / tmp / foo

На следващо място, копираният ключ трябва да бъде поставен в домашната директория на потребителя във файла ~ / .ssh / разрешен_коди .

За да направите това, отидете на сървъра чрез SSH (както обикновено) и изпълнете следната команда:

$ ssh-keygen -i -f /tmp/foo/public.key >> /home/myuser/.ssh/authorized_keys

където myuser, име на потребителя, на когото ще бъде разрешено да влиза в системата с този ключ.

Също така, не забравяйте да се уверите, че разрешаването на ключове е активирано на сървъра. За целта следващите редове трябва да се коментират във файла / etc / ssh / sshd_config:

Удостоверяване на RSA да
PubkeyAuthentication да
AuthorizedKeysFile .ssh / пълномощни ключове

Свързваме се чрез SSH с помощта на ключа

Започваме PuTTY и от лявата страна на екрана отиваме към Connections -> SSH -> Auth.

Намерете реда "частен ключ досие за удостоверяване », тогава трябва да кликнете върху бутона „Преглед“ и да посочите нашия файл с частния ключ „private.ppk“.
След това в главния раздел посочете името / ip адреса на нашия Linux сървър и започнете връзката. След което системата, както обикновено, ще ви помоли да посочите данните за вход и след това паролата на ключа (ако е посочен). Ако паролата не е посочена, конзолата на сървъра ще се отвори без парола.
За да не влизате в настройките Auth и да укажете файла с ключове при всяка връзка, можете да запазите настройките, за това в главния раздел има бутони Save (запаметете настройките на PuTTY) и Заредете (настройки за зареждане).. Всички запазени настройки на Putty се съхраняват в системния регистър, така че по принцип можете да ги прехвърляте от един компютър на друг, като просто експортирате / импортирате част от системния регистър (за повече подробности вижте статията Прехвърляне на настройките на PuTTY).

Освен това, за да не въвеждате ръчно потребителското име всеки път, входът на потребителя може да се запише и в PuTTY (Връзка \ Данни \ Автоматично влизане потребителско име).

Ако това не се получи, анализираме log /var/log/auth.log на сървъра.