Kuinka lisätä SSH-avaimia Ubuntuun 20.04

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-keygen -b 4096 Kun koko SSH-avaimen luontiprosessi 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 paina tulla 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 arvot ei 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.