Како да поставите SSH клучеви на Rocky Linux 9
Вовед
SSH, или безбедна школка, е шифриран протокол што се користи за администрирање и комуникација со серверите. Кога работите со Rocky Linux сервер, големи се шансите дека ќе го поминете поголемиот дел од вашето време во терминална сесија поврзана со вашиот сервер преку SSH.
Во овој водич, ќе се фокусираме на поставување SSH клучеви за серверот Rocky Linux 9. SSH клучевите обезбедуваат јасен, безбеден метод за најавување на вашиот сервер и се препорачуваат за сите корисници.
Чекор 1 - Креирање на пар клучеви RSA
Првиот чекор е да креирате пар клучеви на клиентската машина (обично вашиот локален компјутер):
- ssh-keygen
Стандардно, ssh-keygen
ќе создаде 2048-битен пар клучеви RSA, кој е доволно безбеден за повеќето случаи на употреба (опционално може да го пренесете знамето -b 4096
на креирајте поголем 4096-битен клуч).
Откако ќе ја внесете командата, треба да ја видите следната промпт:
OutputGenerating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):
Притиснете ENTER
за да го зачувате парот клучеви во поддиректориумот .ssh/
во вашиот домашен директориум или наведете алтернативна патека.
Ако претходно сте генерирале пар клучеви SSH, може да го видите следново барање:
Output/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?
Ако изберете да го презапишете клучот на дискот, не ќе можете повеќе да се автентицирате користејќи го претходниот клуч. Бидете внимателни кога избирате да, бидејќи ова е деструктивен процес што не може да се врати назад.
Потоа треба да го видите следново известување:
OutputEnter passphrase (empty for no passphrase):
Овде можете опционално да внесете безбедна лозинка, која е многу препорачлива. Преодната фраза додава дополнителен слој на безбедност на вашиот клуч, за да спречи неовластени корисници да се најавуваат.
Потоа треба да го видите следниов излез:
OutputYour identification has been saved in /your_home/.ssh/id_rsa.
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 username@remote_host
The key's randomart image is:
+--[ RSA 2048]----+
| ..o |
| E o= . |
| o. o |
| .. |
| ..S |
| o o. |
| =o.+. |
|. =++.. |
|o=++. |
+-----------------+
Сега имате јавен и приватен клуч што можете да ги користите за автентикација. Следниот чекор е да го внесете јавниот клуч на вашиот сервер за да можете да користите автентикација базирана на SSH-клуч за да се најавите.
Чекор 2 - Копирање на јавниот клуч на вашиот сервер Rocky Linux
Најбрзиот начин да го копирате вашиот јавен клуч на хостот на Rocky Linux е да користите алатка наречена ssh-copy-id
. Овој метод се препорачува ако е достапен. Ако немате ssh-copy-id
на располагање на вашата клиентска машина, може да користите еден од двата алтернативни методи што следат (копирање преку SSH базирано на лозинка или рачно копирање на клучот) .
Копирање на вашиот јавен клуч користејќи ssh-copy-id
Алатката ssh-copy-id
е стандардно вклучена во многу оперативни системи, така што може да ја имате достапна на вашиот локален систем. За да функционира овој метод, веќе мора да имате SSH пристап до вашиот сервер базиран на лозинка.
За да ја користите алатката, треба само да го наведете оддалечениот хост со кој сакате да се поврзете и корисничката сметка на која имате пристап до лозинка SSH. Ова е сметката на која ќе се копира вашиот јавен SSH клуч:
- ssh-copy-id username@remote_host
Може да ја видите следнава порака:
OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Ова значи дека вашиот локален компјутер не го препознава оддалечениот домаќин. Ова ќе се случи првиот пат кога ќе се поврзете со нов домаќин. Напишете да
и притиснете ENTER
за да продолжите.
Следно, алатката ќе ја скенира вашата локална сметка за клучот id_rsa.pub
што го создадовме претходно. Кога ќе го пронајде клучот, ќе ве праша за лозинката на сметката на оддалечениот корисник:
Output/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
username@203.0.113.1's password:
Внесете ја лозинката (вашето пишување нема да се прикаже за безбедносни цели) и притиснете ENTER
. Алатката ќе се поврзе со сметката на оддалечениот домаќин користејќи ја лозинката што ја наведовте. Потоа ќе ја копира содржината на вашиот клуч ~/.ssh/id_rsa.pub
во датотеката ~/.ssh/authorized_keys
на оддалечената сметка.
Треба да го видите следниов излез:
OutputNumber of key(s) added: 1
Now try logging into the machine, with: "ssh 'username@203.0.113.1'"
and check to make sure that only the key(s) you wanted were added.
Во овој момент, вашиот клуч id_rsa.pub
е поставен на оддалечената сметка. Можете да продолжите на чекор 3.
Копирање на јавен клуч користејќи SSH
Ако немате достапен ssh-copy-id
, но имате SSH пристап базиран на лозинка до сметка на вашиот сервер, можете да ги поставите вашите клучеви користејќи поконвенционален SSH метод.
Можеме да го направиме ова со користење на командата cat
за да ја прочитаме содржината на јавниот SSH клуч на нашиот локален компјутер и да го пренесеме преку SSH врска со оддалечениот сервер.
Од друга страна, можеме да се увериме дека директориумот ~/.ssh
постои и ги има точните дозволи за сметката што ја користиме.
Потоа можеме да ја изведеме содржината што ја префрливме во датотека наречена authorized_keys
во овој директориум. Ќе го користиме симболот за пренасочување >>
за да ја додадеме содржината наместо да ја презапишуваме. Ова ќе ни овозможи да додаваме клучеви без да ги уништиме претходно додадените клучеви.
Целосната команда изгледа вака:
- cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Може да ја видите следнава порака:
OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Ова значи дека вашиот локален компјутер не го препознава оддалечениот домаќин. Ова ќе се случи првиот пат кога ќе се поврзете со нов домаќин. Напишете да
и притиснете ENTER
за да продолжите.
Потоа, треба да биде побарано да ја внесете лозинката за далечинската корисничка сметка:
Outputusername@203.0.113.1's password:
Откако ќе ја внесете лозинката, содржината на вашиот клуч id_rsa.pub
ќе се копира на крајот од датотеката authorized_keys
на сметката на оддалечениот корисник. Ако ова беше успешно, продолжете на чекор 3.
Рачно копирање на јавен клуч
Ако немате достапен SSH пристап до вашиот сервер базиран на лозинка, ќе мора рачно да го завршите горенаведениот процес.
Ние рачно ќе ја додадеме содржината на вашата датотека id_rsa.pub
во датотеката ~/.ssh/authorized_keys
на вашата оддалечена машина.
За да ја прикажете содржината на вашиот клуч id_rsa.pub
, напишете го ова на вашиот локален компјутер:
- cat ~/.ssh/id_rsa.pub
Ќе ја видите содржината на клучот, која треба да изгледа вака:
Outputssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== sammy@host
Најавете се на вашиот далечински хост користејќи кој метод што го имате на располагање.
Откако ќе имате пристап до вашата сметка на оддалечениот сервер, треба да бидете сигурни дека директориумот ~/.ssh
постои. Оваа команда ќе го креира директориумот ако е потребно, или не прави ништо ако веќе постои:
- mkdir -p ~/.ssh
Сега, можете да ја креирате или менувате датотеката authorized_keys
во овој директориум. Можете да ја додадете содржината на вашата датотека id_rsa.pub
на крајот од датотеката authorized_keys
, креирајќи ја доколку е потребно, користејќи ја оваа команда:
- echo public_key_string >> ~/.ssh/authorized_keys
Во горната команда, заменете ја public_key_string
со излезот од командата cat ~/.ssh/id_rsa.pub
што сте ја извршиле на вашата локална систем. Треба да започне со ssh-rsa AAAA...
.
Конечно, ќе се погрижиме директориумот ~/.ssh
и датотеката authorized_keys
да ги имаат поставените соодветни дозволи:
- chmod -R go= ~/.ssh
Ова рекурзивно ги отстранува сите дозволи за \група и \други за директориумот ~/.ssh/
.
Ако ја користите сметката root
за поставување клучеви за корисничка сметка, исто така е важно директориумот ~/.ssh
да му припаѓа на корисникот, а не на root
:
- chown -R sammy:sammy ~/.ssh
Во ова упатство нашиот корисник се вика sammy но треба да го замените соодветното корисничко име во горната команда.
Сега можеме да се обидеме со автентикација базирана на клучеви со нашиот сервер Rocky Linux.
Чекор 3 - Најавете се на вашиот сервер Rocky Linux користејќи SSH клучеви
Ако успешно сте завршиле една од горенаведените процедури, сега треба да можете да се најавите во далечинскиот хост без лозинката на далечинската сметка.
Почетниот процес е ист како кај автентикацијата базирана на лозинка:
- ssh username@remote_host
Ако ова е вашиот прв пат да се поврзете со овој домаќин (ако сте го користеле последниот метод погоре), може да видите нешто како ова:
OutputThe authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes
Ова значи дека вашиот локален компјутер не го препознава оддалечениот домаќин. Напишете да
и потоа притиснете ENTER
за да продолжите.
Ако не сте дале лозинка при креирањето на вашиот пар клучеви во чекор 1, веднаш ќе бидете најавени. Ако сте доставиле лозинка, од вас ќе биде побарано да ја внесете сега. По автентикацијата, треба да ви се отвори нова сесија на школка со конфигурираната сметка на серверот Rocky Linux.
Ако автентикацијата базирана на клучеви беше успешна, продолжете да учите како дополнително да го заштитите вашиот систем со оневозможување на автентикацијата базирана на лозинка на вашиот SSH сервер.
Чекор 4 - Оневозможување на автентикација со лозинка на вашиот сервер
Ако можевте да се најавите на вашата сметка користејќи SSH без лозинка, успешно сте ја конфигурирале автентикацијата базирана на SSH-клуч на вашата сметка. Сепак, вашиот механизам за автентикација базиран на лозинка е сè уште активен, што значи дека вашиот сервер сè уште е изложен на напади со брутална сила.
Пред да ги завршите чекорите во овој дел, проверете дали имате конфигурирана автентикација заснована на SSH-клуч за root сметката на овој сервер или по можност, дека имате конфигурирана автентикација базирана на SSH-клуч не-root сметка на овој сервер со привилегии sudo
. Овој чекор ќе ги заклучи најавувањата засновани на лозинка, така што е од клучно значење да се осигурате дека сè уште ќе можете да добиете административен пристап.
Откако ќе потврдите дека вашата далечинска сметка има административни привилегии, најавете се на вашиот далечински сервер со SSH клучеви, или како root или со сметка со привилегии sudo
. Потоа, отворете ја конфигурациската датотека на демонот SSH:
- sudo vi /etc/ssh/sshd_config
Внатре во датотеката, побарајте директива наречена PasswordAuthentication
. Ова може да се коментира со хаш #
. Притиснете i
за да го ставите vi
во режим на вметнување, а потоа откоментирајте ја линијата и поставете ја вредноста на no
. Ова ќе ја оневозможи вашата способност да се најавите преку SSH користејќи лозинки на сметката:
...
PasswordAuthentication no
...
Кога ќе завршите со промените, притиснете ESC
и потоа :wq
за да ги напишете промените во датотеката и да излезете. За да ги имплементираме овие промени, треба да ја рестартираме услугата sshd
:
- sudo systemctl restart sshd
Како мерка на претпазливост, отворете нов терминален прозорец и тестирајте дали услугата SSH функционира правилно пред да ја затворите вашата тековна сесија:
- ssh username@remote_host
Откако ќе потврдите дека вашата SSH услуга сè уште работи правилно, можете безбедно да ги затворите сите тековни сесии на серверот.
SSH демонот на вашиот сервер Rocky Linux сега одговара само на SSH клучеви. Автентикацијата базирана на лозинка е успешно оневозможена.
Заклучок
Сега треба да имате конфигурирана автентикација базирана на SSH на вашиот сервер, што ќе ви овозможи да се најавите без да обезбедите лозинка за сметката.
Ако сакате да дознаете повеќе за работата со SSH, погледнете го нашиот водич за SSH Essentials.