SSH-avainten määrittäminen Ubuntu 16.04: ssä

Johdanto

SSH eli secure shell on salattu protokolla, jota käytetään hallinnoimaan ja kommunikoimaan palvelimien kanssa. Kun työskentelet Ubuntu-palvelimen kanssa, on todennäköistä, että vietät suurimman osan ajastasi TERMINAALISTUNNOSSA, joka on yhdistetty palvelimeen SSH: n kautta.

tässä oppaassa keskitymme SSH-avainten perustamiseen vanilla Ubuntu 16.04-asennukselle. SSH avaimet tarjoavat helpon, turvallisen tavan kirjautua palvelimeen ja suositellaan kaikille käyttäjille.

Vaihe 1 — Luo RSA-avainpari

ensimmäinen vaihe on luoda avainpari asiakaskoneeseen (yleensä tietokoneeseen):

  • ssh-keygen

oletuksena ssh-keygen luo 2048-bittisen RSA-avainparin, joka on riittävän turvallinen useimpiin käyttötapauksiin (voit vaihtoehtoisesti siirtää -b 4096 lippu suuremman 4096-bittisen avaimen luomiseksi).

komennon syötettyäsi sinun tulee nähdä seuraava tuloste:

Output
Generating public/private rsa key pair.Enter file in which to save the key (/your_home/.ssh/id_rsa):

paina ENTER tallentaaksesi avainparin .ssh/ alihakemistoon kotihakemistossa, tai määritä vaihtoehtoinen polku.

Jos olet aiemmin luonut SSH-avainparin, saatat nähdä seuraavan kehotuksen:

Output
/home/your_home/.ssh/id_rsa already exists.Overwrite (y/n)?

Jos haluat korvata avaimen levyllä, et voi enää todentaa edellistä avainta. Ole hyvin varovainen, kun valitset Kyllä, Koska tämä on tuhoisa prosessi, jota ei voida peruuttaa.

tämän jälkeen sinun tulee nähdä seuraava kehote:

Output
Enter passphrase (empty for no passphrase):

tähän voi vaihtoehtoisesti syöttää suojatun salauslauseen, joka on erittäin suositeltava. Salauslause lisää ylimääräisen suojakerroksen, joka estää luvattomia käyttäjiä kirjautumasta sisään. Lisätietoja tietoturvasta saat tutustumalla opetusohjelmaamme SSH-Avainpohjaisen todennuksen määrittämisestä Linux-palvelimella.

sinun pitäisi nähdä seuraava ulostulo:

Output
Your 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_hostThe key's randomart image is:+------+| ..o || E o= . || o. o || .. || ..S || o o. || =o.+. ||. =++.. ||o=++. |+-----------------+

sinulla on nyt julkinen ja yksityinen avain, jota voit käyttää todentamiseen. Seuraava vaihe on asettaa julkinen avain palvelimelle, jotta voit käyttää SSH-key-pohjaista todennusta kirjautumiseen.

Vaihe 2 — Kopioi julkinen avain Ubuntu-palvelimelle

nopein tapa kopioida julkinen avain Ubuntu-palvelimeen on käyttää apuohjelmaa nimeltä ssh-copy-id. Koska sen yksinkertaisuus, tämä menetelmä on erittäin suositeltavaa, jos saatavilla. Jos sinulla ei olessh-copy-id käytettävissä asiakaskoneellasi, voit käyttää jompaakumpaa tässä osiossa esitetyistä vaihtoehtoisista menetelmistä (kopiointi salasanapohjaisen SSH: n kautta tai avaimen käsin kopiointi).

julkisen avaimen kopiointi ssh-copy-id: llä

ssh-copy-id työkalu on oletusarvoisesti mukana monissa käyttöjärjestelmissä, joten se voi olla saatavilla paikallisjärjestelmässä. Jotta tämä menetelmä toimisi, sinulla on jo oltava salasanapohjainen SSH pääsy palvelimelle.

käyttääksesi apuohjelmaa sinun tarvitsee vain määrittää etäpalvelin, johon haluat muodostaa yhteyden, ja käyttäjätili, johon sinulla on SSH-salasana. Tämä on tili, johon Julkinen SSH avain kopioidaan.

syntaksi on:

  • ssh-copy-id username@remote_host

saatat nähdä seuraavan viestin:

Output
The 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

tämä tarkoittaa, että paikallinen tietokoneesi ei tunnista etäpalvelinta. Tämä tapahtuu, kun muodostat yhteyden uuteen palvelimeen ensimmäistä kertaa. Kirjoita ”Kyllä” ja paina ENTER jatkaaksesi.

seuraavaksi apuohjelma skannaa paikallisen tilisi id_rsa.pub avain, jonka loimme aiemmin. Kun se löytää avaimen, se kysyy etäkäyttäjän tilin salasanaa:

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 [email protected]'s password:

kirjoita salasana (kirjoitustasi ei näytetä turvallisuussyistä) ja paina ENTER. Apuohjelma muodostaa yhteyden etäpalvelimen tiliin antamallasi salasanalla. Sen jälkeen se kopioi ~/.ssh/id_rsa.pub – avaimen etätilin kotona olevaan tiedostoon ~/.ssh hakemistoon nimeltä authorized_keys.

sinun tulee nähdä seuraavat tuotokset:

Output
Number of key(s) added: 1Now try logging into the machine, with: "ssh '[email protected]'"and check to make sure that only the key(s) you wanted were added.

tässä vaiheessa id_rsa.pub avain on ladattu etätilille. Voit jatkaa vaiheeseen 3.

kopioidaan julkista avainta SSH

Jos sinulla ei ole käytettävissä, mutta sinulla on salasanapohjainen SSH-yhteys palvelimellasi olevaan tiliin, voit ladata avaimesi perinteisellä SSH-menetelmällä.

voimme tehdä tämän käyttämällä cat – komentoa lukeaksemme julkisen SSH-avaimen sisällön paikallisella tietokoneellamme ja putkittaaksemme sen SSH-yhteyden kautta etäpalvelimeen.

toisella puolella voimme varmistaa, että ~/.ssh hakemisto on olemassa ja sillä on oikeat käyttöoikeudet käyttämämme tilin alla.

voimme sitten tulostaa putkitetun sisällön tiedostoon nimeltä authorized_keys tässä hakemistossa. Käytämme

>>

uudelleenohjaussymbolia sisällön liittämiseen sen sijaan, että se olisi ylikirjoitettu. Tämä antaa meidän lisätä avaimet tuhoamatta aiemmin lisättyjä avaimia.

koko komento näyttää tältä:

  • cat ~/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod -R go= ~/.ssh && cat >> ~/.ssh/authorized_keys"

saatat nähdä seuraavan viestin:

Output
The 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

tämä tarkoittaa, että paikallinen tietokone ei tunnista etäpalvelinta. Tämä tapahtuu, kun muodostat yhteyden uuteen palvelimeen ensimmäistä kertaa. Kirjoita ”Kyllä” ja paina ENTER jatkaaksesi.

jälkikäteen pyydetään syöttämään etäkäyttäjän tilin salasana:

Output
[email protected]'s password:

salasanan syöttämisen jälkeen id_rsa.pub avain kopioidaan etäkäyttäjän tilin authorized_keys tiedoston loppuun. Jatka vaiheeseen 3, Jos tämä onnistui.

kopioimalla julkista avainta manuaalisesti

Jos sinulla ei ole salasanapohjaista SSH-pääsyä palvelimeesi, sinun on suoritettava yllä oleva prosessi manuaalisesti.

lisäämme manuaalisesti id_rsa.pub tiedoston ~/.ssh/authorized_keys tiedoston etäkoneellasi.

näyttääksesi id_rsa.pub avain, kirjoita tämä paikalliseen tietokoneeseesi:

  • cat ~/.ssh/id_rsa.pub

näet avaimen sisällön, jonka pitäisi näyttää jotakuinkin tältä:

Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCqql6MzstZYh1TmWWv11q5O3pISj2ZFl9HgH1JLknLLx44+tXfJ7mIrKNxOOwxIxvcBF8PXSYvobFYEZjGIVCEAjrUzLiIxbyCoxVyle7Q+bqgZ8SeeM8wzytsY+dVGcBxF6N4JS+zVk5eMcV385gG3Y6ON3EG112n6d+SMXY0OEBIcO6x+PnUSGHrSgpBgX7Ks1r7xqFa7heJLLt2wWwkARptX7udSq05paBhcpB0pHtA1Rfz3K2B+ZVIpSDfki9UVKzT8JUmwW6NNzSgxUfQHGwnW7kj4jp4AT0VZk3ADw497M2G/12N0PPB5CnhHf7ovgy6nL1ikrygTKRFmNZISvAcywB9GVqNAVE+ZHDSCuURNsAInVzgYo9xgJDW8wUw2o8U77+xiFxgI5QSZX3Iq7YLMgeksaO4rBJEa54k8m5wEiEE1nUhLuJ0X/vh2xPff6SQ1BL/zkOhvJCACK6Vb15mDOeCSq54Cr7kvS46itMosi/uS66+PujOO+xt/2FWYepz6ZlN70bRly57Q06J+ZJoc9FfBCbCyYH7U/ASsmY095ywPsBo1XQ9PqhnN1/YOorJ068foQDNVpm146mUpILVxmq41Cj55YKHEazXGsdBIbXWhcrRf4G2fJLRcGUr9q8/lERo9oxRm5JFX6TCmj6kmiFqv+Ow9gI0x8GvaQ== demo@test

käytä etäpalvelinta millä tahansa käytettävissä olevalla menetelmällä.

kun sinulla on pääsy tilillesi etäpalvelimella, varmista, että ~/.ssh hakemisto on olemassa. Tämä komento luo hakemiston tarvittaessa, tai ei tee mitään, jos se on jo olemassa:

  • mkdir -p ~/.ssh

Nyt voit luoda tai muokata authorized_keys tiedostoa tässä hakemistossa. Voit lisätä id_rsa.pub tiedoston authorized_keys tiedoston sisällönauthorized_keystiedoston loppuun, luoden sen tarvittaessa tällä komennolla:

  • echo public_key_string >> ~/.ssh/authorized_keys

yllä olevassa komennossa korvaa public_key_string ulostulo cat ~/.ssh/id_rsa.pub komennosta, jonka suoritit paikallisjärjestelmässä. Sen pitäisi alkaa ssh-rsa AAAA....

lopuksi varmistamme, että ~/.ssh hakemistoon ja authorized_keys tiedostoon on asianmukaiset käyttöoikeudet asetettu:

  • chmod -R go= ~/.ssh

Tämä poistaa rekursiivisesti kaikki ~/.ssh/ hakemiston ”ryhmä” – ja”muut” – oikeudet.

Jos käytät root – tiliä käyttäjätilin avainten määrittämiseen, on myös tärkeää, että ~/.ssh Hakemisto kuuluu käyttäjälle eikä root:

  • chown -R sammy:sammy ~/.ssh

tässä opetusohjelmassa käyttäjämme nimi on Sammy, mutta sinun tulisi korvata sopiva käyttäjätunnus yllä olevaan komentoon.

voimme nyt yrittää salasanatonta todennusta Ubuntu-palvelimellamme.

Vaihe 3 — Todenna Ubuntu-palvelimelle SSH-näppäimillä

Jos olet suorittanut jonkin yllä mainituista menettelyistä, sinun pitäisi pystyä kirjautumaan etäpalvelimeen ilman etätilin salasanaa.

perusprosessi on sama:

  • ssh username@remote_host

Jos tämä on ensimmäinen kerta, kun yhdistät tähän isäntään (jos käytit viimeistä yllä olevaa menetelmää), saatat nähdä jotain tällaista:

Output
The 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

tämä tarkoittaa, että paikallinen tietokone ei tunnista etäpalvelinta. Kirjoita ”Kyllä” ja paina sitten ENTER jatkaaksesi.

Jos et toimittanut salauslausetta yksityiselle avaimellesi, kirjaudut sisään välittömästi. Jos annoit salauslauseen yksityiselle avaimelle, kun loit avaimen, sinua pyydetään syöttämään se nyt (huomaa, että painalluksesi ei näy pääte-istunnossa turvallisuuden vuoksi). Todennuksen jälkeen sinulle pitäisi avautua uusi komentotulkkisessio Ubuntu-palvelimessa olevan määritetyn tilin avulla.

Jos avainpohjainen todennus onnistui, jatka siitä, miten voit suojata järjestelmääsi edelleen poistamalla salasanatodennuksen käytöstä.

Vaihe 4 — Poista Salasanatodennus palvelimeltasi

Jos pystyit kirjautumaan tilillesi SSH: n avulla ilman salasanaa, olet määrittänyt SSH-avainpohjaisen todennuksen tilillesi. Salasanapohjainen todennusmekanismi on kuitenkin edelleen aktiivinen, mikä tarkoittaa, että palvelimesi on edelleen alttiina julmille hyökkäyksille.

ennen kuin suoritat tämän osion vaiheet, varmista, että sinulla on joko SSH-avainpohjainen todennus tämän palvelimen pääkäyttötilille tai mieluiten, että SSH-avainpohjainen todennus on määritetty tälle palvelimelle muulle kuin pääkäyttäjätilille sudo-oikeudet. Tämä vaihe lukitsee salasanapohjaiset kirjautumiset, joten on tärkeää varmistaa, että voit silti saada hallinnollisen pääsyn.

kun olet vahvistanut, että etätililläsi on hallinnollisia oikeuksia, Kirjaudu etäpalvelimeesi SSH-avaimilla, joko pääkäyttäjänä tai tilillä, jolla on sudo oikeudet. Avaa sitten SSH-demonin asetustiedosto:

  • sudo nano /etc/ssh/sshd_config

tiedoston sisällä, etsi direktiivi nimeltä PasswordAuthentication. Tämä voidaan kommentoida ulos. Poista rivi ja aseta arvoksi ”Ei”. Tämä poistaa mahdollisuuden kirjautua SSH: n kautta käyttämällä tilin salasanoja:

/etc/ssh/sshd_config
...PasswordAuthentication no...

Tallenna ja sulje tiedosto, kun olet valmis painamalla CTRLX, sitten Y vahvistamaan tiedoston tallentamisen ja lopuksi ENTER poistumaan Nano. Jotta nämä muutokset todella toteutettaisiin, meidän on käynnistettävä uudelleen sshd palvelu:

  • sudo systemctl restart ssh

varotoimena, avattava uusi pääteikkuna ja testattava SSH-palvelun toimivuus ennen tämän istunnon sulkemista:

  • ssh username@remote_host

kun olet varmistanut SSH-palvelusi, voit turvallisesti sulkea kaikki nykyiset palvelinistunnot.

Ubuntu-palvelimen SSH-taustaprosessi vastaa nyt vain SSH-avaimiin. Salasanapohjainen todennus on onnistuneesti poistettu käytöstä.

johtopäätös

palvelimellasi pitäisi nyt olla SSH-avaimeen perustuva todennus, jonka avulla voit kirjautua sisään ilman tilin salasanaa.

Jos haluat lisätietoja SSH: n kanssa työskentelystä, tutustu SSH Essentials-oppaaseen.



Vastaa

Sähköpostiosoitettasi ei julkaista.