Как да настроите SSH ключ на Linux

SSH е страхотна технология; можете да го използвате, за да скриете VPN трафик с него, да защитите връзката си с уебсайтове и други. Единственият проблем е всеки път, когато се опитвате да влезете в отдалечена машина, трябва да въведете паролата си и това може да бъде досадно. Ако сте разработчик, който иска да се свърже с много машини през SSH едновременно с Bash скрипт или просто някой, който използва Secure Shell и му е писнало да въвежда пароли, има решение: SSH без парола. Този процес включва генериране на защитен SSH ключ на хост машината и споделянето му като начин за достъп до компютъра. Това ще позволи на всеки с ключа да влезе, дори и да не знае паролата. Ето как да го стартирате.

Какво представляват SSH ключовете?

SSH ключът е уникален идентификационен файл, който се използва със Secure Shell. Целта на тези ключове е да предоставят уникална самоличност на потребителя и да ги маркират като „доверени“ при влизане. Самите тези ключове са нещо повече от файлове, които доказват нечия самоличност. Всъщност SSH позволява на потребителите да влизат с ключ, а не с парола. Това означава, че вместо да бъдете принудени да въвеждате парола всеки път, когато влизате през SSH, използвате SSH ключа.

  Как да настроите Rsync на Linux

SSH ключът е поставен някъде сигурно във вашата Linux инсталация и оттам можете да влезете в отдалечената машина колкото искате без парола.

Генериране на защитени SSH ключове

Генерирането на защитен SSH ключ първо изисква SSH да работи и да работи. Разберете, че това не означава непременно, че трябва да имате SSH сървър. Само че основните SSH инструменти и технологии работят на вашия компютър с Linux. Не сте сигурни как да настроите SSH? Следвайте нашето ръководство за това тук.

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

За да започнете процеса на генериране на ключове, отворете терминал. В прозореца на терминала стартирайте:

ssh-keygen -t rsa

Изпълнението на ssh-keygen ще отпечата „Генериране на двойка публичен/частен rsa ключ“. Това означава, че системата ви генерира както публичен, така и частен ключ за използване. Публичните ключове са тези, които всеки може да използва и би трябвало да сте добре да ги давате. Частният ключ, от друга страна, е нещо, което никога не трябва да споделяте с никого. Оттук и името „частен“.

Ключовете ще се запишат в /home/username/.ssh/id_rsa.

Забележка: НЕ ИЗТРИВАЙТЕ папката ~/.ssh, тъй като тя съдържа вашите ключове. Ако подправите тази папка по някакъв начин и след това се опитате да влезете отдалечено в тази машина, SSH подканата ще се провали. Освен това ще отпечата предупреждение и ще ви заключи.

  Как да промените паролите за акаунти в Linux

SSH ключове на отдалечена машина

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

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

ssh [email protected] mkdir -p .ssh

Изпълнението на тази ssh команда ще създаде скрита папка ~/.ssh в домашната директория на отдалечената машина (с потребителя, който е бил използван за влизане). Тази папка е важна, тъй като тук ще копираме новогенерираните SSH ключови файлове.

За да копирате SSH ключовите файлове, изпълнете още една команда от SSH хост машината към отдалечената машина, която се нуждае от ключовете:

cat .ssh/id_rsa.pub | ssh [email protected] 'cat >> .ssh/authorized_keys'

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

  Как да изчистите Wine от Linux

Архивиране на SSH ключове

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

Най-бързият, най-ефикасният (и най-лесният начин) за криптиране е да използвате GnuPG. Самият инструмент е вграден в повечето от инструментите за криптиране, които вече са в Linux, и е основното средство, когато се извеждат криптиращи файлове. За да инсталирате GnuPG, отворете терминал и потърсете в мениджъра на пакети „gpg“. Програмата трябва да бъде лесна за намиране, дори в много неясни дистрибуции на Linux.

След като GPG стартира и стартира, стартирайте процеса на криптиране, като компресирате вашата ~/.ssh директория в tar архивен файл. Това ще направи така, че да няма нужда да шифровате поотделно всеки един файл в папката ~/.ssh.

tar -czvf ssh-stuff.tar.gz /home/username/.ssh

Когато компресирането приключи, стартирайте процеса на криптиране.

Забележка: преди да криптирате, стартирайте gpg в терминала, за да генерирате нов ключодържател.

gpg -c ssh-stuff.tar.gz

Когато процесът на криптиране завърши, GnuPG ще изведе файл с етикет „ssh-stuff.tar.gz.gpg“. Чувствайте се свободни да изтриете оригиналната, отключена версия на файла. За да дешифрирате архивния си архив, направете следното:

gpg ssh-stuff.tar.gz.gpg