Što učiniti kada provjera autentičnosti na temelju ključa ne radi nakon ssh-copy-id

Nedavno sam osigurao Ubuntu virtualni privatni poslužitelj (VPS) na Vultru. I sam sam pristalica CentOS-a, ali zadatak na kojem sam radio preporučio je Ubuntu.

Da biste postavili provjeru autentičnosti na temelju ključa s mog prijenosnog računala na poslužitelj,

  • Generirao sam novi SSH ključ (nazvan "ubuntu") na svom Macu pomoću naredbe: ssh-keygen -t rsa -b 4096
  • Zatim sam koristio ssh-copy-iduslužni program za kopiranje javnog ključa u authorized_keysdatoteku na Vultr VPS-u:ssh-copy-id -i .ssh/ubuntu [email protected]

Kao što sam i očekivao, uslužni program zatražio je moju VPS lozinku kako bi dovršio prijenos javnog ključa. Kad je sve bilo gotovo, pokušao sam se prijaviti na svoj VPS.

Trebao me propustiti bez potrebe za lozinkom:

ssh -i .ssh/ubuntu [email protected]

Ali stalno sam se tražio lozinku. ?

  • Provjerio sam svoju authorized_keysdatoteku na VPS-u kako bih se uvjerio da je moj javni ključ ispravno kopiran. Ček. ??
  • Pobrinuo sam se da datoteka pišem i pišem samo za sebe i ni za koga drugog. Ček. ??
  • Uvjerio sam se da su sljedeće mogućnosti omogućene u /etc/ssh/sshd_config: PubkeyAuthentication yesi AuthorizedKeysFile .ssh/authorized_keys. Ček. ??

Ipak, stalno sam se tražio lozinku prilikom prijave s prijenosnog računala.

Nakon nekoliko minuta na StackOverflowu saznao sam za šifrirane kućne direktorije, koji su zadani u nekim okruženjima, uključujući Ubuntu.

Šifrirani kućni direktoriji neće se dešifrirati dok početna prijava ne uspije. Međutim, moja je authorized_keysdatoteka pohranjena u moj kućni direktorij.

Stoga će za moj prvi pokušaj povezivanja biti potrebna lozinka. Naknadne veze uspjet će bez lozinke, jer će SSH usluga tada moći pročitati moju authorized_keysdatoteku u mom dešifriranom kućnom direktoriju.

Da bih to zaobišao, stvorio sam direktorij nazvan po mom korisničkom imenu aritdevizvan svog kućnog direktorija (odabrao sam /etc/) i dao sam mu puna dopuštenja, ali dopuštenja za čitanje i izvršavanje za sve ostale. Dalje sam premjestio svoju authorized_keysdatoteku u /etc/aritdev/. Zatim sam AuthorizedKeysFileparametar ažurirao u /etc/ssh/sshd_config:

AuthorizedKeysFile /etc/%u/authorized_keys

Konačno, ponovno sam pokrenuo SSH uslugu. Da bih testirao, odjavio sam se s VPS-a, a zatim sam se pokušao ponovno prijaviti. BOOM - uspjelo je! ??

S kojim ste se problemima u vezi s autentifikacijom poslužitelja susreli? Kako ste ih riješili? Molimo podijelite u nastavku! ??