Jos käytät SSH:ta usein yhteyden muodostamiseen etäisäntään, yksi tapa suojata SSH-palvelin on käyttää julkista/yksityistä SSH-avainta, jotta salasanaa ei lähetetä verkon yli. Se voi myös estää raa'an voiman hyökkäyksen.
Linuxissa julkisen/yksityisen SSH-avaimen luominen on helppoa.
- Avaa terminaali. Tyyppi:
Vaihtoehtoisesti voit käyttää myös DSA (digitaalinen allekirjoitusalgoritmi) teknologiaa julkisen/yksityisen avaimen luomiseksi.
Huomautus: DSA:n ja RSA:n turvallisuudesta on keskusteltu paljon. Minun mielestäni sillä ei ole väliä, kumman valitset, ellet ole kovin erityinen ja rakastat syventää näiden kahden tekniikan teknisiä yksityiskohtia. Molemmat toimivat hyvin.
- Seuraavassa näytössä sinun pitäisi nähdä kehote, joka pyytää sijaintia avaimen tallentamiseen. Oletussijainti on kotihakemistosi .ssh-kansio. Hyväksy oletusasetus painamalla Enter.
- Sinua pyydetään antamaan tunnuslause – EI salasanaa yhteyden muodostamiseksi etäisäntään, vaan salalauseen yksityisen avaimen lukituksen avaamiseksi, jotta kukaan ei pääse käsiksi etäpalvelimellesi, vaikka he saisivat yksityisen avaimesi. Tunnuslause on valinnainen. Jos haluat jättää sen tyhjäksi, paina Enter.
- Julkinen ja yksityinen SSH-avaimesi pitäisi nyt luoda. Avaa tiedostonhallinta ja siirry .ssh-hakemistoon. Sinun pitäisi nähdä kaksi tiedostoa: id_rsa ja id_rsa.pub.
- Lataa uusi julkinen SSH-avain etäisäntään suorittamalla seuraava komento:
ssh-copy-id käyttäjätunnus@kauko-isäntä-ip-osoite
- Kirjaudu sisään etäisäntään ja muokkaa SSH-asetustiedostoa:
ssh-käyttäjänimi@remote-host-ip-osoite sudo nano /etc/ssh/sshd_configVieritä konfigurointitiedostoa alaspäin ja varmista, että seuraavat määritteet on asetettu oikein:
RSAA-todennus kyllä PubkeyAuthentication kyllä Salasanatodennus eiPaina Ctrl + O kirjoittaaksesi ja tallentaaksesi tiedoston ja sitten Ctrl + X sulkeaksesi tiedoston.
- Käynnistä SSH-palvelin uudelleen etäisännässä:
sudo systemctl käynnistä ssh uudelleenSe siitä. Voit nyt muodostaa yhteyden etäisäntään seuraavalla komennolla:
ssh-käyttäjänimi@remote-host-ip-osoiteUsein Kysytyt Kysymykset
Kopioin SSH-avaimeni etäpalvelimelleni ja saan "Permission Denied" -virheilmoituksen.
Tämä ongelma johtuu todennäköisesti etäisännän .ssh-kansiossa olevasta ongelmasta. Oletuksena SSH-daemon hylkää kaikki saapuvat yhteydet, jos sen asetuskansiossa ja "authorized_keys" -tiedostossa ei ole oikeita käyttöoikeusbittejä.
Voit muuttaa tiedostojen ja kansioiden käyttöoikeuksia siirtymällä paikalliseen konsoliin etäkoneellesi, menemällä "/home"-hakemistoosi ja suorittamalla: chmod 700 /home/$USER/.ssh && chmod 600 /home/$USER/.ssh /authorized_keys. Lopuksi käynnistä daemon uudelleen ottaaksesi käyttöön uudet asetukset: sudo systemctl restart ssh.
Onko mahdollista luoda useita SSH-avaimia samalle etäpalvelimelle?
Joo! Sinun on kuitenkin varmistettava, että jokaisella koneen SSH-avaimella on yksilöllinen tiedostonimi suorittamalla komento: ssh-keygen -f /home/$USER/.ssh/filename.
Tämän lisäksi varmista, että määrität avaimen, jolla haluat kirjautua sisään etäisäntään suorittamalla: ssh -i /home/$USER/.ssh/filename username@remote.host.ip.address.
Onko mahdollista tuoda uusi SSH-avain etäisäntään vanhalla toimivalla avaimella?
Joo! Tuo ensin uusi avaimesi SSH-todennusagenttiin: ssh-add. Seuraavaksi kirjaudu sisään vanhaan koneellesi ja tuo sen avain samaan todennusagenttiin: ssh -A old.machine.ip.address && ssh-add -c.
Lopuksi poistu vanhasta koneesta painamalla Ctrl + D ja muodosta yhteys etäisäntään sekä uusilla että vanhoilla avaimilla.
Vastaa