Mitä tehdä, kun avainpohjainen todennus ei toimi ssh-copy-id jälkeen

Olen äskettäin hankkinut Ubuntun virtuaalisen yksityisen palvelimen (VPS) Vultriin. Olen itse osittainen CentOSiin, mutta tehtäväni, jonka parissa työskentelin, suositteli Ubuntua.

Voit määrittää avainkohtaisen todennuksen kannettavastani palvelimelle

  • Loin uuden SSH-avainparin (nimeltä “ubuntu”) Mac-tietokoneelleni komennolla: ssh-keygen -t rsa -b 4096
  • Sitten käytin ssh-copy-idapuohjelmaa kopioidaksesi julkisen avaimen authorized_keystiedostoon Vultr VPS: ssä:ssh-copy-id -i .ssh/ubuntu [email protected]

Kuten odotin, apuohjelma pyysi VPS-salasanaani julkisen avaimen siirron suorittamiseksi. Kun kaikki oli valmis, yritin kirjautua VPS: ään.

Sen olisi pitänyt päästää minut läpi ilman salasanaa:

ssh -i .ssh/ubuntu [email protected]

Mutta minulta kysyttiin jatkuvasti salasanaa. ?

  • Tarkistin authorized_keystiedostoni VPS: llä varmistaakseni, että julkinen avain oli kopioitu oikein. Tarkistaa. ??
  • Huolehdin siitä, että tiedosto on kirjoitettu ja kirjoitettu vain itselleni eikä kenellekään muulle. Tarkistaa. ??
  • Varmistin, että seuraavat vaihtoehdot olivat käytössä /etc/ssh/sshd_config: PubkeyAuthentication yesja AuthorizedKeysFile .ssh/authorized_keys. Tarkistaa. ??

Silti minulta kysyttiin jatkuvasti salasanaa sisäänkirjautumisen yhteydessä kannettavasta tietokoneesta.

Muutaman minuutin kuluttua StackOverflow-ohjelmasta sain tietää salatuista kotihakemistoista, jotka ovat oletusarvoisia joissakin ympäristöissä, mukaan lukien Ubuntu.

Salattuja kotihakemistoja ei pureta ennen kuin ensimmäinen kirjautuminen onnistuu. Olen kuitenkin authorized_keystiedosto tallennetaan kotihakemistoni.

Siksi ensimmäinen yhteysyritykseni vaatii salasanan. Seuraavat yhteydet onnistuvat ilman salasanaa, koska SSH-palvelu pystyy sitten lukemaan authorized_keystiedostoni salaamattomasta kotihakemistostani.

Voit kiertää tämän luomalla hakemiston, joka on nimetty käyttäjänimeni aritdevmukaan kotihakemistoni ulkopuolelle (valitsin /etc/), ja annoin sille täydet käyttöoikeudet itselleni, mutta luku- ja suoritusoikeudet kaikille muille. Seuraavaksi muutin authorized_keystiedostoni /etc/aritdev/. Sitten päivitin AuthorizedKeysFileparametrin /etc/ssh/sshd_config:

AuthorizedKeysFile /etc/%u/authorized_keys

Lopuksi käynnistin SSH-palvelun uudelleen. Testattavaksi kirjauduin ulos VPS: stä ja yritin kirjautua takaisin sisään. BOOM - se toimi! ??

Mitä palvelimen todennukseen liittyviä ongelmia olet kokenut? Kuinka ratkaisit ne? Ole hyvä ja jaa alla! ??