Kako dodati SSH ključeve na Ubuntu 20.04

Postavite sigurnu prijavu bez lozinke na vaš udaljeni Ubuntu poslužitelj pomoću SSH ključeva

SSH je siguran mrežni protokol klijent-poslužitelj koji pomaže klijentskom računalu da se poveže i komunicira s udaljenim poslužiteljem. SSH veza osigurava da se naredbe koje su upisane u terminal šalju udaljenom poslužitelju putem šifriranog kanala.

Postoje dvije vrste mehanizama provjere autentičnosti koje se koriste za povezivanje s udaljenim poslužiteljem, provjera autentičnosti temeljena na lozinki (sklona napadima grubom silom) i provjera autentičnosti temeljena na SSH ključevima (koja je vrlo sigurna).

U autentifikaciji temeljenoj na SSH ključu, par ključeva se generira na klijentskom računalu, koji se naziva javni ključ i privatni ključ. Kopija ovog javnog ključa dostupna je na udaljenom poslužitelju. Kada klijent pošalje zahtjev za povezivanje poslužitelju tada poslužitelj generira nasumični niz i šifrira ga pomoću javnog ključa. Ovaj se niz može dešifrirati samo korištenjem privatnog ključa dostupnog na računalu klijenta. Ova metoda osigurava da poslužitelju mogu pristupiti samo klijenti koji sadrže privatni ključ.

U ovom vodiču ćemo vidjeti kako postaviti SSH ključeve na Ubuntu 20.04 LTS poslužitelj.

Provjerite imate li neki postojeći SSH ključ na računalu

Da biste provjerili postoji li par SSH ključeva na vašem računalu, upišite ovu naredbu u svoj terminal.

ls -l ~/.ssh/id_*.pub

Ako se gornja naredba vrati nema takve datoteke ili direktorija ili nema pronađenih podudaranja, onda to znači da par SSH ključeva ne postoji.

Ako imate postojeći par ključeva SSH, tada možete koristiti isti par ključeva za pristup dva udaljena poslužitelja ili također možete stvoriti drugi par ključeva s drugačijim imenom. Prijeđimo na sljedeći korak i vidimo kako generirati SSH ključeve za oba slučaja.

Izrada SSH ključeva na klijentskom računalu

Za generiranje novog para SSH ključeva na računalu upišite naredbu kao što je prikazano u nastavku.

ssh-keygen

Prema zadanim postavkama, SSH ključevi imaju 2048 bita. Za bolju sigurnost, ako želite generirati SSH ključeve s višim bitovima, upotrijebite sljedeću naredbu.

ssh-keygen -b 4096

Ako se naredba uspješno pokrene, na zaslonu će se prikazati sljedeća poruka.

generiranje javnog/privatnog para ključeva rsa. Unesite datoteku u koju ćete spremiti ključ (/home/harshit/.ssh/id_rsa):

Sada, ako nemate nijedan postojeći par SSH ključeva na računalu, jednostavno pritisnite Unesi, ali ako imate postojeći SSH ključ, tada spremite ključ s drugim nazivom datoteke kao što je prikazano u nastavku.

Unesite datoteku u koju želite spremiti ključ (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx

Zamijenite xxx na kraju naziva datoteke s odgovarajućim nazivom, kao što je prikazano u nastavku i pritisnite Unesi.

Unesite datoteku u koju želite spremiti ključ (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1

Sljedeći upit tražit će od vas da unesete šifru proizvoljne duljine, što će osigurati sigurnost na dvije razine na vašem uređaju.

Unesite šifru (prazno ako nema pristupne fraze): Ponovno unesite istu šifru:

Unos ove šifre osigurat će da čak i ako osoba dobije pristup vašem privatnom ključu, neće moći pristupiti vašem udaljenom poslužitelju bez ove šifre.

Nakon što je cijeli proces završen, na ekranu će se pojaviti sljedeća poruka.

ssh-keygen -b 4096 Nakon što je cijeli proces generiranja SSH ključa dovršen, na zaslonu će se pojaviti sljedeća poruka.

SSH ključevi su generirani na vašem sustavu. Sada je vrijeme da kopirate javni ključ na udaljeni poslužitelj.

Kopiranje javnog ključa na udaljeni Ubuntu poslužitelj

Najlakši i najbrži način za kopiranje javnog ključa na udaljeni poslužitelj je korištenje ssh-kopija-id korisnost. Ali ako ovaj uslužni program iz nekog razloga nije dostupan na vašem računalu, možete koristiti i druge metode navedene u ovom odjeljku.

Korištenje uslužnog programa ssh-copy-id

The ssh-kopija-id Uslužni program je prema zadanim postavkama dostupan na vašem Ubuntu stroju koji kopira javni ključ s vašeg uređaja u odgovarajući direktorij vašeg udaljenog Ubuntu stroja.

Za kopiranje javnog ssh ključa jednostavno upišite naredbu u svoj terminal, kao što je prikazano u nastavku.

ssh-copy-id korisničko ime@ime hosta

Zamijenite Korisničko ime i ime domaćina u gornjoj naredbi s korisničkim imenom i imenom hosta vašeg poslužitelja.

Sljedeća poruka će se pojaviti na vašem terminalu ako se prvi put povezujete sa svojim hostom, upišite Da i pritisnite Unesi.

Autentičnost hosta "172.105.XX.XX (172.105.XX.XX)" nije moguće utvrditi. Otisak ECDSA ključa je xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx. Jeste li sigurni da želite nastaviti povezivanje (da/ne)? Da

Sada je ssh-kopija-id uslužni program će skenirati datoteku s imenom id_rsa.pub koji sadrži javni SSH ključ. Nakon što je proces skeniranja dovršen, od vas će se tražiti da unesete lozinku vašeg udaljenog poslužitelja, kao što je prikazano u nastavku. Upišite lozinku i pritisnite Unesi.

/usr/bin/ssh-copy-id: INFO: pokušava se prijaviti s novim ključem(ovima), za filtriranje svih koji su već instalirani /usr/bin/ssh-copy-id: INFO: 1 ključ(ovi) ) ostaje za instaliranje - ako se od vas sada zatraži da instalirate nove ključeve [email protected] lozinku:

Nakon što je ključ dodan, sljedeća poruka će se pojaviti na vašem terminalu kao izlaz.

Broj dodanih ključeva: 1 Sada se pokušajte prijaviti na stroj sa: "ssh '[email protected]'" i provjerite jesu li dodani samo ključ(ovi) koje želite.

U slučaju da na svom klijentskom računalu imate više SSH ključeva, tada za kopiranje odgovarajućeg javnog ključa na udaljeno računalo upišite naredbu prema dolje prikazanom uzorku.

ssh-copy-id -i id_rsa_xxx.pub korisničko ime@host

💡 Savjet

Nemojte zaboraviti staviti .pub na kraj naziva datoteke dok upisujete u terminal.

Kopiranje javnog ključa metodom cjevovoda

Upišite sljedeću naredbu u terminal if ssh-kopija-id uslužni program nije dostupan. Ova naredba se može činiti malo dužom, ali radi na odgovarajući način.

mačka ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

Zamijeniti udaljeno_korisničko ime i server_ip_address sa svojim korisničkim imenom i IP adresom.

Ako na računalu imate više SSH ključeva, zamijenite ih id_rsa.pub s javnom SSH ključnom datotekom po vašem izboru. Na primjer, id_rsa_client_1.pub.

Upišite lozinku udaljenog korisnika kada se to od vas zatraži i pritisnite Unesi.

lozinka [email protected]:

Nakon što upišete lozinku, id_rsa.pub datoteka će se kopirati u autorizirani_ključevi datoteku udaljenog poslužitelja.

Ručno kopiranje javnog ključa

Koristite ovu metodu kada nemate pristup svom udaljenom sustavu putem provjere autentičnosti lozinkom.

Otvori id_rsa.pub datoteku pomoću mačka naredbu u terminalu. Možete ga otvoriti i iz uređivača teksta, svrha je samo kopiranje sadržaja datoteke.

mačka ~/.ssh/id_rsa.pub

Sadržaj datoteke će izgledati kao što je prikazano u nastavku.

ssh-RSA AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6Hy / 65 + + qqmiuLyuIQXjDiiYTjHTx VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH vaše_ime 'your_PC

Sada se prijavite na svoj udaljeni poslužitelj i zalijepite kopirani sadržaj pomoću naredbe prikazane u nastavku. Zamijenite iznad_niza s kopiranim sadržajem.

echo iznad_niza >> ~/.ssh/autorizirani_ključevi

Konfiguriranje više SSH ključeva (izborno)

Ovaj korak je za osobe koje imaju postavljeno više SSH ključeva na svom klijentskom računalu. Preskočite ovaj odjeljak ako imate samo jednu postavku SSH ključa.

Za upravljanje višestrukim SSH ključevima sada ćemo kreirati a konfig datoteka unutar .ssh imenik pomoću naredbe prikazane u nastavku.

cd ~/.ssh vim konfiguracija

Tip i za ulazak u naredbeni način rada i upisivanje pojedinosti o više hostova, kao što je prikazano u sljedećem primjeru:

Host remote-ubuntu-server HostName 172.105.XX.XX Korisnički korijen IdentityFile ~/.ssh/id_rsa_client_1 Host remote-ubuntu-server HostName 172.106.XX.XX Korisnički korijen IdentityFile ~/.ssh/id_rsa_client_

Slično, upišite pojedinosti o drugim udaljenim poslužiteljima i njihovim ključevima. Nakon što je proces završen pritisnite Esc i :wq za spremanje i izlaz.

Sada su sljedeći procesi isti za oba koja imaju jedan ili više SSH ključeva na klijentskom računalu.

Prijavite se na svoj udaljeni poslužitelj pomoću SSH ključeva

Nakon što je proces kopiranja vašeg javnog ključa dovršen, prijavite se na svoj udaljeni poslužitelj upisivanjem naredbe kao što je prikazano u nastavku.

ssh udaljeno_korisničko ime@ip_adresa_poslužitelja

Ako ste unijeli šifru tijekom generiranja para ključeva, od vas će se tražiti da je unesete. Nova sesija će se otvoriti nakon dovršetka postupka provjere autentičnosti.

Sada ste uspješno konfigurirali autentifikaciju temeljenu na SSH ključevima na vašem udaljenom poslužitelju. Ali autentifikacija temeljena na lozinki i dalje je aktivna na vašem poslužitelju, što znači da je vaš udaljeniji poslužitelj još uvijek sklon napadima grube sile.

Dakle, sada ćemo potpuno onemogućiti mehanizam za prijavu na temelju lozinke s našeg udaljenog poslužitelja.

Onemogućite mehanizam za prijavu na temelju lozinke

Prije nego što izvršite bilo kakve promjene, provjerite ima li root korisnik ili bilo koji korisnik koji je omogućio sudo za vaš udaljeni račun pristup vašem poslužitelju pomoću sustava provjere autentičnosti koji se temelji na SSH ključu. Ovaj će korak u potpunosti zaključati ili onemogućiti prijavu temeljenu na lozinki, stoga je ključno da barem jedan korisnik root privilegije ima pristup poslužitelju putem SSH ključa.

Prijavite se na svoj udaljeni Ubuntu poslužitelj i upišite naredbu prikazanu u nastavku.

sudo vim /etc/ssh/sshd_config
  • Pritisnite Esc, / i upišite 'PasswordAuthentication' i pritisnite Unesi.
  • Sada pritisnite i i promijenite vrijednost "PasswordAuthentication yes" u "PasswordAuthentication no".
  • Pritisnite Esc i ponovite gornji postupak da pronađete "ChallengeResponseAuthentication", "UsePAM" i promijenite njihove vrijednosti u Ne također.
PasswordAuthentication bez ChallengeResponseAuthentication bez UsePAM br

Nakon što su sve vrijednosti postavljene na Ne, pritisnite Esc, tip :wq i pogodio Unesi.

Za aktiviranje svih promjena ponovno pokrenite ssh servis pomoću naredbe u nastavku.

sudo systemctl ponovno pokrenite ssh

Sada otvorite novi prozor terminala na vašem računalu i provjerite radi li provjera autentičnosti vašeg SSH ključa ispravno prije zatvaranja trenutne sesije.

Nakon što je proces provjere dovršen, zatvorite sve aktivne sesije.

Sada smo uspješno konfigurirali autentifikaciju temeljenu na SSH ključu na našem Ubuntu 20.04 poslužitelju. Sada se nitko ne može prijaviti na vaš poslužitelj koristeći mehanizam za prijavu koji se temelji na lozinki.