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:
OutputGenerating 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:
OutputEnter 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:
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_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:
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
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:
OutputNumber 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:
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
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ä:
Outputssh-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_keys
tiedoston 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:
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
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:
...PasswordAuthentication no...
Tallenna ja sulje tiedosto, kun olet valmis painamalla CTRL
X
, 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.