Ovatko julkiset SSH-avaimesi vaikeaa? Kokeile jotakin näistä ratkaisuista.
SSH on hyödyllinen työkalu yhteyden muodostamiseen etäkoneisiin, mutta saatat kohdata "Lupa estetty (julkinen avain)" -virheen, joka koskee julkista avaimesi Linuxissa. Onneksi on olemassa joitain helppoja korjauksia, joiden avulla voit yrittää vianmääritystä.
Mikä on julkinen avain?
Kun luot avainparin SSH: lle Linuxissa, sinulle annetaan julkinen avain ja yksityinen avain. Yksityinen avain pysyy kanssasi tarkasti varjeltuna salaisuutena, mutta julkinen avain välitetään etäpalvelimille, jotta voit kirjautua sisään ilman salasanaa. Paikallinen SSH-asiakkaasi yhdistää julkisen avaimen yksityiseen avaimeen, kun muodostat yhteyden.
Tämän menetelmän etuna on, että sinun tarvitsee vain antaa julkinen avain. Niin kauan kuin pidät yksityisen avaimesi yksityisenä, tämän pitäisi pitää sinut turvassa, jos julkinen avaimesi vaarantuu. Julkinen avain on hyödytön yksinään.
OpenSSH, avoimen lähdekoodin maailman laajimmin käytetty SSH-asiakas ja -palvelin, vaatii tiedoston, joka sisältää minkä tahansa julkiset avaimet etäkoneella (".ssh/authorized_keys" kotihakemistossasi), jotta niillä on tietyt oikeudet. Se ei toimi, jos kirjoitusoikeudet on asetettu muille käyttäjille, mikä tunnetaan nimellä "world-writable". Koska hakemiston nimi alkaa pisteellä (.), se ei näy missään ls-tiedoissa, ellet käytä komento
ls -A.Käyttöoikeudet voivat muuttua, jos tiedosto kopioitiin toisesta tietokoneesta tai olet luonut sen itse. Onneksi tämä on helppo korjata.
Tarkista julkisen avaimen käyttöoikeutesi
Authorized_keys-tiedosto on pelkkä tekstitiedosto, joka sisältää kaikki julkiset avaimet asiakkailta, joille haluat kirjautua tilillesi etäkoneella. Nähdäksesi sen käyttöoikeudet, käytä ls-komentoa vaihtoehdolla -l:
ls -l ~/.ssh/authorized_keys
Tämä näyttää omistajan, ryhmän ja muiden käyttäjien käyttöoikeusasetukset. Kiinnitä huomiota merkkijonon kuuteen viimeiseen kirjaimeen. Jos näet niissä "w", se tarkoittaa, että ryhmä tai muut voivat kirjoittaa siihen, mikä tekee siitä epävarman.
Haluat, että sinä, mutta et ryhmä tai muut, voi kirjoittaa tähän tiedostoon. Antaaksesi pääsyn oikeille käyttäjille, Voit muuttaa käyttöoikeuksia chmodilla.
On kaksi tapaa: numeerisesti ja symbolisesti.
Numeerinen tapa on lyhyempi, mutta sinun täytyy muistaa oktaalilupanumerot:
chmod 700 ~/.ssh/authorized_keys
Symbolinen menetelmä on enemmän muistomerkki:
chmod go-w ~/.ssh/authorized_keys
Kopioi avaimet turvallisesti ssh-agentilla
Voit manuaalisesti kopioida ja liittää kaikki julkiset avaimet laitteeltasi ~/.ssh/.authorized_keys tiedostoa, mutta ssh-agent-ohjelman käyttö vähentää mahdollisten käyttöoikeusvirheiden mahdollisuuksia.
Käynnistä ssh-agent käyttämällä tätä komentoa:
eval "$(ssh-agent-s)"
Jos haluat kirjautua sisään etäpalvelimelle ssh-agentilla, käytä -A-vaihtoehtoa ssh: n kanssa
ssh -A [email protected]
Tarkista etäpalvelimen sshd-asetukset
Jos jokin näistä toimenpiteistä epäonnistuu, saatat joutua tekemään joitain muutoksia etäkoneen sshd-palvelimeen, jos sinulla on pääkäyttäjän oikeudet. Jos ei, sinun on todennäköisesti otettava yhteyttä järjestelmänvalvojaan, jotta voit ratkaista SSH-yhteysongelmat. Tämä on viimeinen keino, koska se voi heikentää järjestelmäsi turvallisuutta.
Järjestelmänlaajuinen sshd-määritystiedosto on /etc/ssh/sshd_config. Koska sen omistaa pääkäyttäjä, sinun on käytettävä sudoa sen muokkaamiseen. Esimerkiksi, jos haluat muokata sitä Vimillä:
sudo vim /etc/ssh/sshd_config
Jos haluat sallia sshd: n avulla kirjautua sisään, vaikka authorised_keys-tiedostosi on maailmanlaajuisesti kirjoitettava, aseta "StrictModes"-asetukseksi "no" tässä tiedostossa.
Tallenna se ja käynnistä SSH-palvelin uudelleen:
sudo systemctl restart sshd.service
Nyt voit korjata SSH: n julkisen avaimen käyttöoikeusvirheet
Saatat kohdata virheitä koskien julkisia SSH-avaimia etäjärjestelmissä. Onneksi suurimman osan ajasta sinun tarvitsee vain tarkistaa ja asettaa tiedostojen käyttöoikeudet niin, että kukaan muu ei näe avaimesi. Voit myös käyttää ssh-agentia luotettavampien yhteyksien luomiseen. Viimeisenä keinona voit tehdä SSH-palvelimesta vähemmän tiukat.