SSH-avaimien määrittäminen CentOS 7:ssä

Esittely

SSH eli secure shell on salattu protokolla, jota käytetään palvelimien hallintaan ja yhteydenpitoon. Kun työskentelet CentOS-palvelimen kanssa, on todennäköistä, että vietät suurimman osan ajastasi pääteistunnossa, jossa olet yhteydessä palvelimeen SSH:n kautta.

Tässä oppaassa keskitymme SSH-avainten määrittämiseen vaniljaista CentOS 7 -asennusta varten. SSH-avaimet tarjoavat suoraviivaisen ja turvallisen tavan kirjautua palvelimeesi, ja niitä suositellaan kaikille käyttäjille.

Vaihe 1 – RSA-avainparin luominen

Ensimmäinen vaihe on avainparin luominen asiakaskoneelle (yleensä tietokoneellesi):

  • ssh-keygen

Vakiossa ssh-keygen luo 2048-bittisen RSA-avainparin, joka on riittävän turvallinen useimpiin käyttötapauksiin (voit valinnaisesti syöttää -b 4096-lipputunnisteen luodaksesi suuremman 4096-bittisen avaimen).

Komennon kirjoittamisen jälkeen sinun pitäisi nähdä seuraava kehote:

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

Paina ENTER tallentaaksesi avainparin kotihakemistosi alihakemistoon .ssh/ tai määritä vaihtoehtoinen polku.

Jos olit aiemmin luonut SSH-avainparin, saatat nähdä seuraavan kehotteen:

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

Jos päätät korvata levyllä olevan avaimen, et voi enää tunnistautua edellisen avaimen avulla. Ole hyvin varovainen valitessasi kyllä, sillä tämä on tuhoava prosessi, jota ei voi peruuttaa.

Sitten pitäisi nähdä seuraava kehote:

Output
Enter passphrase (empty for no passphrase):

Tässä voit valinnaisesti syöttää turvallisen salasanan, mikä on erittäin suositeltavaa. Tunnuslause lisää lisäturvakerroksen, joka estää luvattomia käyttäjiä kirjautumasta sisään. Jos haluat lisätietoja tietoturvasta, tutustu oppaaseen How To Configure SSH Key-Based Authentication on a Linux Server.

Tällöin sinun pitäisi nähdä seuraava tuloste:

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 [email protected]_hostThe key's randomart image is:+------+| ..o || E o= . || o. o || .. || ..S || o o. || =o.+. ||. =++.. ||o=++. |+-----------------+

Sinulla on nyt julkinen ja yksityinen avain, joita voit käyttää todennukseen. Seuraava askel on sijoittaa julkinen avain palvelimelle, jotta voit käyttää SSH-avainpohjaista todennusta kirjautumiseen.

Vaihe 2 – Kopioi julkinen avain CentOS-palvelimelle

Nopein tapa kopioida julkinen avaimesi CentOS-isäntäkoneelle on käyttää apuohjelmaa nimeltä ssh-copy-id. Yksinkertaisuutensa vuoksi tämä menetelmä on erittäin suositeltava, jos se on käytettävissä. Jos ssh-copy-id ei ole käytettävissäsi asiakaskoneellasi, voit käyttää jompaakumpaa tässä osiossa esitetyistä kahdesta vaihtoehtoisesta menetelmästä (kopiointi salasanapohjaisen SSH:n kautta tai avaimen kopioiminen manuaalisesti).

Julkisen avaimen kopioiminen ssh-copy-id:n avulla

Työkalu ssh-copy-id sisältyy oletusarvoisesti moniin käyttöjärjestelmiin, joten se saattaa olla käytettävissäsi paikallisessa järjestelmässäsi. Jotta tämä menetelmä toimisi, sinulla on jo oltava salasanapohjainen SSH-käyttöoikeus palvelimeesi.

Käyttääksesi apuohjelmaa sinun tarvitsee vain määrittää etäisäntä, johon haluat muodostaa yhteyden, ja käyttäjätili, johon sinulla on salasanapohjainen SSH-käyttöoikeus. Tämä on tili, johon julkinen SSH-avaimesi kopioidaan.

Syntaksi on:

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 vain sitä, että paikallinen tietokoneesi ei tunnista etäisäntää. Tämä tapahtuu, kun muodostat yhteyden uuteen isäntäkoneeseen ensimmäistä kertaa. Kirjoita ”kyllä” ja paina ENTER jatkaaksesi.

Seuraavaksi apuohjelma etsii paikalliselta tililtäsi aiemmin luomamme id_rsa.pub-avaimen. 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äisännän tiliin antamallasi salasanalla. Sen jälkeen se kopioi ~/.ssh/id_rsa.pub-avaimesi sisällön etätilin kotihakemistossa ~/.ssh olevaan tiedostoon nimeltä authorized_keys.

Näkyy seuraava tuloste:

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-avaimesi on ladattu etätilille. Voit jatkaa vaiheeseen 3.

Julkisen avaimen kopioiminen SSH:n avulla

Jos sinulla ei ole käytettävissäsi ssh-copy-id-avainta, mutta sinulla on salasanapohjainen SSH-käyttövaltuus palvelimesi tiliin, voit ladata avaimesi perinteisellä SSH-menetelmällä.

Voimme tehdä tämän käyttämällä komentoa cat, jolla luemme julkisen SSH-avaimen sisällön paikallisella tietokoneellamme, ja voimme välittää sen putkella etäkäyttöön etäpalvelimelle tarkoitetun SSH-yhteyden kautta.

Toisella puolella voimme varmistaa, että ~/.ssh-hakemisto on olemassa ja että sillä on oikeat käyttöoikeudet käyttämällämme tilillä.

Voidaan sitten tulostaa putkella siirtämämme sisältö authorized_keys-nimiseen tiedostoon tässä hakemistossa. Käytämme >> uudelleenohjaussymbolia liittääksemme sisällön sen sijaan, että ylikirjoittaisimme sen. Näin voimme lisätä avaimia tuhoamatta aiemmin lisättyjä avaimia.

Komento näyttää kokonaisuudessaan tältä:

  • cat ~/.ssh/id_rsa.pub | ssh [email protected]_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äisäntää. Tämä tapahtuu ensimmäisellä kerralla, kun muodostat yhteyden uuteen isäntäkoneeseen. Kirjoita ”kyllä” ja paina ENTER jatkaaksesi.

Sen jälkeen sinua pyydetään syöttämään etäkäyttäjätilin salasana:

Output
[email protected]'s password:

Salasanan syöttämisen jälkeen id_rsa.pub-avaimesi sisältö kopioidaan etäkäyttäjätilin authorized_keys-tiedoston loppuun. Jatka vaiheeseen 3, jos tämä onnistui.

Julkisen avaimen kopioiminen manuaalisesti

Jos sinulla ei ole salasanapohjaista SSH-yhteyttä palvelimellesi käytettävissäsi, joudut suorittamaan yllä olevan prosessin manuaalisesti.

Liitämme manuaalisesti id_rsa.pub-tiedoston sisällön etäkoneesi ~/.ssh/authorized_keys-tiedostoon.

Näyttääksesi id_rsa.pub-avaimesi sisällön kirjoita tämä paikalliseen koneeseesi:

  • 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== [email protected]

Käyttäydy etäkoneellesi millä tahansa käytettävissäsi 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

Voit nyt luoda tai muokata authorized_keys-tiedostoa tässä hakemistossa. Voit lisätä id_rsa.pub-tiedoston sisällön authorized_keys-tiedoston loppuun ja luoda sen tarvittaessa tällä komennolla:

  • echo public_key_string >> ~/.ssh/authorized_keys

Korvaa yllä olevassa komennossa public_key_string paikallisessa järjestelmässä suorittamasi cat ~/.ssh/id_rsa.pub-komennon tulosteella. Sen pitäisi alkaa kirjaimella ssh-rsa AAAA....

Varmennetaan lopuksi, että hakemistolle ~/.ssh ja tiedostolle authorized_keys on asetettu asianmukaiset käyttöoikeudet:

  • chmod -R go= ~/.ssh

Tämä poistaa rekursiivisesti kaikki ”ryhmä”- ja ”muut”-oikeudet hakemistosta ~/.ssh/.

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ä ohjeessa käyttäjämme nimi on sammy, mutta sinun on korvattava yllä olevaan komentoon sopiva käyttäjänimi.

Voidaan nyt yrittää salasanatonta todennusta Ubuntu-palvelimellamme.

Vaihe 3 – Todenna CentOS-palvelimelle SSH-avaimilla

Jos olet suorittanut onnistuneesti jonkin edellä mainituista menettelyistä, sinun pitäisi pystyä kirjautumaan etäisäntään ilman etätilin salasanaa.

Perusprosessi on sama:

Jos tämä on ensimmäinen kerta, kun muodostat yhteyden tähän isäntäkoneeseen (jos käytit viimeistä edellä mainittua menetelmää), saatat nähdä jotakin 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 tietokoneesi ei tunnista etäisäntäkonetta. Kirjoita ”kyllä” ja jatka sitten painamalla ENTER.

Jos et ole antanut salasanaa yksityiselle avaimellesi, kirjaudut sisään välittömästi. Jos annoit salasanalauseen yksityiselle avaimelle sitä luodessasi, sinua pyydetään antamaan salasana nyt. Tunnistautumisen jälkeen sinulle pitäisi avautua uusi komentotulkki-istunto määritetyllä tilillä CentOS-palvelimella.

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

Vaihe 4 – Salasanatodennuksen poistaminen käytöstä palvelimellasi

Jos pystyit kirjautumaan tilillesi SSH:lla ilman salasanaa, olet onnistuneesti määrittänyt SSH-avainpohjaisen todentamiskäytännön tunnistautumisen tilillesi. Salasanapohjainen todennusmekanismisi on kuitenkin edelleen aktiivinen, mikä tarkoittaa, että palvelimesi on edelleen alttiina brute-force-hyökkäyksille.

Varmistu ennen tämän osion vaiheiden suorittamista, että sinulla on joko määritetty SSH-avainpohjainen todennus tämän palvelimen pääkäyttäjätilille tai mieluiten SSH-avainpohjainen todennus on määritetty muulle kuin pääkäyttäjätilille tällä palvelimella, jolla on sudo-oikeudet. Tämä vaihe lukitsee salasanapohjaiset sisäänkirjautumiset, joten sen varmistaminen, että voit silti saada järjestelmänvalvojan käyttöoikeudet, on ratkaisevan tärkeää.

Kun olet varmistanut, että etätililläsi on järjestelmänvalvojan oikeudet, kirjaudu etäpalvelimelle SSH-avaimilla joko pääkäyttäjänä tai tilillä, jolla on sudo-oikeudet. Avaa sitten SSH-demonin konfigurointitiedosto:

  • sudo vi /etc/ssh/sshd_config

Etsi tiedoston sisältä direktiivi nimeltä PasswordAuthentication. Tämä voidaan kommentoida pois. Paina i lisätäksesi tekstiä, ja poista sitten kommentti riviltä ja aseta arvoksi ”no”. Tämä poistaa mahdollisuuden kirjautua SSH:n kautta tilisalasanoja käyttäen:

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

Kun olet tehnyt muutokset valmiiksi, paina ESC ja paina sitten :wq kirjoittaaksesi muutokset tiedostoon ja poistu. Näiden muutosten todellista toteuttamista varten meidän on käynnistettävä sshd-palvelu uudelleen:

  • sudo systemctl restart sshd.service

Avaa varmuuden vuoksi uusi pääteikkuna ja testaa, että SSH-palvelu toimii oikein, ennen kuin suljet tämän istunnon:

Kun olet tarkistanut SSH-palvelun, voit turvallisesti sulkea kaikki nykyiset palvelinistunnot.

CentOS-palvelimesi SSH-daemon vastaa nyt vain SSH-avaimiin. Salasanapohjainen todennus on onnistuneesti poistettu käytöstä.

Johtopäätös

Palvelimellesi pitäisi nyt olla konfiguroitu SSH-avainpohjainen todennus, jonka avulla voit kirjautua sisään antamatta tilin salasanaa.

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

Vastaa

Sähköpostiosoitettasi ei julkaista.