Määritä suojattu salasanaton kirjautuminen Ubuntu-etäpalvelimellesi SSH-avaimilla
SSH on suojattu asiakas-palvelin-verkkoprotokolla, joka auttaa asiakastietokonetta muodostamaan yhteyden etäpalvelimeen ja viestimään sen kanssa. SSH-yhteys varmistaa, että päätteeseen kirjoitetut komennot lähetetään etäpalvelimelle salatun kanavan kautta.
On olemassa kahdenlaisia todennusmekanismeja, joita käytetään yhteyden muodostamiseen etäpalvelimeen, salasanapohjainen todennus (altis brute-force-hyökkäyksille) ja SSH-avaimiin perustuva todennus (joka on erittäin turvallinen).
SSH-avainpohjaisessa autentikaatiossa asiakastietokoneelle luodaan avainpari, jota kutsutaan julkiseksi avaimeksi ja yksityiseksi avaimeksi. Tämän julkisen avaimen kopio on saatavilla etäpalvelimella. Kun asiakas lähettää yhteyspyynnön palvelimelle, palvelin luo satunnaisen merkkijonon ja salaa sen julkisella avaimella. Tämän merkkijonon salaus voidaan purkaa vain asiakastietokoneessa olevalla yksityisellä avaimella. Tämä menetelmä varmistaa, että vain yksityisen avaimen sisältävät asiakkaat voivat käyttää palvelinta.
Tässä oppaassa näemme, kuinka SSH-avaimet asetetaan Ubuntu 20.04 LTS -palvelimelle.
Tarkista, onko tietokoneessasi olemassa SSH-avain
Tarkistaaksesi, onko tietokoneessasi jo SSH-avainpari, kirjoita tämä komento päätteeseen.
ls -l ~/.ssh/id_*.pub
Jos yllä oleva komento palaa Ei tällaista tiedostoa tai hakemistoa
tai ei hakua vastaavia tuloksia
, se tarkoittaa, että SSH-avainparia ei ole olemassa.
Jos sinulla on olemassa SSH-avainpari, voit joko käyttää samaa avainparia kahden etäpalvelimen käyttämiseen tai voit myös luoda eri avainparin, jolla on eri nimi. Siirrytään seuraavaan vaiheeseen ja katsotaan kuinka luodaan SSH-avaimet molemmille tapauksille.
SSH-avaimien luominen asiakastietokoneella
Luo uusi SSH-avainpari tietokoneellesi kirjoittamalla alla olevan kuvan mukainen komento.
ssh-keygen
Oletuksena SSH-avaimet ovat 2048-bittisiä. Jos haluat luoda SSH-avaimia suuremmilla biteillä, käytä seuraavaa komentoa turvallisuuden parantamiseksi.
ssh-keygen -b 4096
Jos komento suoritetaan onnistuneesti, näyttöön tulee seuraava viesti.
luodaan julkinen/yksityinen rsa-avainpari. Anna tiedosto, johon avain tallennetaan (/home/harshit/.ssh/id_rsa):
Nyt jos sinulla ei ole olemassa olevaa SSH-avainparia tietokoneellasi, paina yksinkertaisesti Tulla sisään
, mutta jos sinulla on olemassa SSH-avain, tallenna avain toisella tiedostonimellä alla olevan kuvan mukaisesti.
Kirjoita tiedosto, johon avain tallennetaan (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_xxx
Korvata xxx
tiedostonimen lopussa sopivalla nimellä alla olevan kuvan mukaisesti ja paina Tulla sisään
.
Kirjoita tiedosto, johon haluat tallentaa avaimen (/home/your_name/.ssh/id_rsa): /home/your_name/.ssh/id_rsa_client_1
Seuraava kehote pyytää sinua antamaan mielivaltaisen pituisen tunnuslauseen, se varmistaa laitteesi kaksitasoisen suojauksen.
Anna salasana (tyhjä, jos salasanaa ei ole): Anna sama tunnuslause uudelleen:
Tämän tunnuslauseen kirjoittaminen varmistaa, että vaikka henkilö pääsisi käyttämään yksityistä avaimesi, hän ei voi käyttää etäpalvelintasi ilman tätä tunnuslausetta.
Kun koko prosessi on valmis, näyttöön tulee seuraava viesti.
SSH-avaimet on luotu järjestelmässäsi. Nyt on aika kopioida julkinen avain etäpalvelimelle.
Julkisen avaimen kopioiminen Ubuntu-etäpalvelimeen
Helpoin ja nopein tapa kopioida julkinen avain etäpalvelimelle on käyttää ssh-copy-id
apuohjelma. Mutta jos tämä apuohjelma ei jostain syystä ole käytettävissä koneessasi, voit käyttää myös muita tässä osiossa annettuja menetelmiä.
Käyttämällä ssh-copy-id -apuohjelmaa
The ssh-copy-id
apuohjelma on oletusarvoisesti saatavilla Ubuntu-koneellasi, joka kopioi julkisen avaimen laitteestasi Ubuntu-etäkoneesi sopivaan hakemistoon.
Jos haluat kopioida julkisen ssh-avaimen, kirjoita komento päätteeseen alla olevan kuvan mukaisesti.
ssh-copy-id käyttäjätunnus@isäntänimi
Korvata käyttäjätunnus
ja isäntänimi
yllä olevassa komennossa palvelimesi käyttäjänimellä ja isäntänimellä.
Seuraava viesti tulee näkyviin päätteeseesi, jos muodostat yhteyden isäntään ensimmäistä kertaa, kirjoita Joo
ja paina Tulla sisään
.
Isännän "172.105.XX.XX (172.105.XX.XX)" aitoutta ei voida vahvistaa. ECDSA-avaimen sormenjälki on xx:xx:xx:xx:77:fe:73:xx:xx:55:00:ad:d6:xx:xx:xx. Haluatko varmasti jatkaa yhteyden muodostamista (kyllä/ei)? Joo
Nyt ssh-copy-id
apuohjelma etsii tiedoston nimellä id_rsa.pub
joka sisältää julkisen SSH-avaimen. Kun skannaus on valmis, se pyytää sinua syöttämään etäpalvelimesi salasanan alla olevan kuvan mukaisesti. Kirjoita salasana ja paina Tulla sisään
.
/usr/bin/ssh-copy-id: INFO: yritetään kirjautua sisään uusilla avaimilla, jo asennettujen avainten suodattaminen pois /usr/bin/ssh-copy-id: INFO: 1 avain ) jää asentamatta -- jos sinua kehotetaan nyt asentamaan uudet avaimet [email protected] salasana:
Kun avain on lisätty, seuraava viesti näkyy terminaalissasi ulostulona.
Lisättyjen avainten määrä: 1 Yritä nyt kirjautua sisään koneelle komennolla: "ssh '[email protected]'" ja tarkista, että vain haluamasi avaimet on lisätty.
Jos asiakastietokoneellasi on useita SSH-avaimia, kopioi sopiva julkinen avain etätietokoneellesi kirjoittamalla komento alla olevan mallin mukaisesti.
ssh-copy-id -i id_rsa_xxx.pub käyttäjätunnus@isäntä
💡 Vinkki
Älä unohda laittaa .pub tiedostonimen loppuun kirjoittaessasi terminaaliin.
Julkisen avaimen kopioiminen putkimenetelmällä
Kirjoita seuraava komento terminaaliin if ssh-copy-id
apuohjelma ei ole saatavilla. Tämä komento saattaa tuntua hieman pidemmältä, mutta se toimii asianmukaisesti.
kissa ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && kosketa ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"
Korvata etäkäyttäjänimi
ja palvelimen IP-osoite
käyttäjätunnuksellasi ja IP-osoitteellasi.
Jos tietokoneessasi on useita SSH-avaimia, vaihda id_rsa.pub
valitsemasi julkisen SSH-avaintiedoston kanssa. Esimerkiksi, id_rsa_client_1.pub
.
Kirjoita etäkäyttäjän salasana pyydettäessä ja paina Tulla sisään
.
Käyttäjän [email protected] salasana:
Kun kirjoitat salasanan, id_rsa.pub
tiedosto kopioidaan kohteeseen authorised_keys
etäpalvelimen tiedosto.
Julkisen avaimen kopioiminen manuaalisesti
Käytä tätä menetelmää, kun et pääse etäjärjestelmääsi salasanatodennuksen kautta.
Avaa id_rsa.pub
tiedosto käyttäen kissa
komento terminaalissa. Voit avata sen myös tekstieditorista, tarkoituksena on vain kopioida tiedoston sisältö.
kissa ~/.ssh/id_rsa.pub
Tiedoston sisältö näyttää alla olevan kuvan mukaiselta.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQComjFtuHvHQ67uf3RXg2wgK4EtxBvBvLCtlc4chG + nJ1cbuJjJ6G8az4xsRN1Q7hrV4dYR81Tk3gRApiMdGcMvInU3Vb7Wq3nh9GS4xnLRH1wvb149wogum2MycIES69Xh0cib + VvJyZ + dGO8zRNT64 + SvfiecRV0llnBGWDRqrIGtMHJkKz7VDKuSyzDit / Ck1NFXxC6Plw3cEMOhWHycm8bnSHSoVpr95ySxxnokX4 / 9iAlvOovxTpMpmDaDvuHKgHxcsOv9Q4sz // 6HY / 65 + qqmiuLyuIQXjDiiYTjHTx + VNi6S0iMLoN6XgDLp0MfG6kLvZ0Z + csqdvIDQfMuH Oma nimi @ your_PC
Kirjaudu nyt etäpalvelimellesi ja liitä kopioitu sisältö alla olevan komennon avulla. Korvata yläpuolella_merkkijono
kopioidun sisällön kanssa.
echo above_string >> ~/.ssh/authorized_keys
Useiden SSH-avainten määrittäminen (valinnainen)
Tämä vaihe on tarkoitettu ihmisille, joiden asiakastietokoneessa on useita SSH-avaimia. Ohita tämä osio, jos sinulla on vain yksi SSH-avainasetus.
Useiden SSH-avaimien hallitsemiseksi luomme nyt a config
tiedosto sisällä .ssh
hakemistoon alla olevan komennon avulla.
cd ~/.ssh vim config
Tyyppi i
siirtyäksesi komentotilaan ja kirjoittamalla useiden isäntien tiedot seuraavan esimerkin mukaisesti:
Isäntä-ubuntu-palvelimen isäntänimi 172.105.XX.XX Käyttäjän päätunnistetiedosto ~/.ssh/id_rsa_client_1 Isäntä-ubuntu-palvelimen isäntäpalvelimen isäntänimi 172.106.XX.XX Käyttäjän päätunnistetiedosto ~/.ssh/id_rsa_client_
Kirjoita samalla tavalla muiden etäpalvelimien tiedot ja niiden avaimet. Kun prosessi on valmis, paina poistu
ja :wq
tallentaa ja poistua.
Nyt seuraavat prosessit ovat samat molemmille, joilla on yksi tai useita SSH-avaimia asiakastietokoneessa.
Kirjaudu etäpalvelimellesi SSH-avaimilla
Kun julkisen avaimesi kopiointi on valmis, kirjaudu sisään etäpalvelimellesi kirjoittamalla alla olevan komennon.
ssh-etäkäyttäjänimi@palvelimen_ip_osoite
Jos annoit salasanan luodessasi avainparia, sinua pyydetään antamaan se. Uusi istunto avautuu, kun todennusprosessi on valmis.
Olet nyt onnistuneesti määrittänyt SSH-avaimiin perustuvan todennuksen etäpalvelimellasi. Mutta salasanapohjainen todennus on edelleen aktiivinen palvelimellasi, mikä tarkoittaa, että etäpalvelimesi on edelleen alttiina raa'an voiman hyökkäyksille.
Joten nyt poistamme salasanapohjaisen kirjautumismekanismin kokonaan käytöstä etäpalvelimeltamme.
Poista salasanapohjainen kirjautumismekanismi käytöstä
Ennen kuin teet muutoksia, varmista, että etätilisi pääkäyttäjällä tai sudo-käytössä olevalla käyttäjällä on pääsy palvelimellesi SSH-avainpohjaisen todennusjärjestelmän avulla. Tämä vaihe lukitsee tai poistaa käytöstä salasanapohjaisen kirjautumisen kokonaan, joten on erittäin tärkeää, että vähintään yhdellä käyttäjän pääkäyttäjän oikeuksilla on pääsy palvelimeen SSH-avaimen kautta.
Kirjaudu sisään Ubuntu-etäpalvelimellesi ja kirjoita alla näkyvä komento.
sudo vim /etc/ssh/sshd_config
- Lehdistö
poistu
,/
ja kirjoita "PasswordAuthentication" ja painatulla sisään
. - Paina nyt
i
ja muuta 'PasswordAuthentication yes' -arvon arvoksi 'PasswordAuthentication ei'. - Lehdistö
poistu
ja toista yllä oleva prosessi löytääksesi "ChallengeResponseAuthentication", "UsePAM" ja muuta niiden arvotei
yhtä hyvin.
PasswordAuthentication no ChallengeResponseAuthentication ei UsePAM no
Kun kaikki arvot on asetettu ei
, Lehdistö poistu
, tyyppi :wq
ja osui tulla sisään
.
Aktivoi kaikki muutokset käynnistämällä uudelleen ssh
palvelua käyttämällä alla olevaa komentoa.
sudo systemctl käynnistä ssh uudelleen
Avaa nyt uusi pääteikkuna tietokoneellasi ja varmista, että SSH-avaimen todennus toimii oikein ennen nykyisen istunnon sulkemista.
Kun vahvistusprosessi on valmis, sulje kaikki käynnissä olevat istunnot.
Olemme nyt onnistuneesti määrittäneet SSH-avainpohjaisen todennuksen Ubuntu 20.04 -palvelimellamme. Nyt kukaan ei voi kirjautua sisään palvelimellesi salasanapohjaisella kirjautumismekanismilla.