Hvordan legger jeg til SSH-nøkler i filen authorized_keys?

Jeg har en Ubuntu-server på Amazon EC2, som jeg bruker til utvikling, og i dag ryddet jeg dumt alt ut av ~/.ssh / authorized_keys-filen min. Heldigvis har jeg en SSH åpen, så jeg er fortsatt tilkoblet, og kan fikse filen, men når jeg prøver å sette nøkkelfilen min tilbake, fungerer den ikke. Jeg får fortsatt avslag fra serveren på min lokale maskin.

authorized_keys har tillatelsene 600. Jeg har prøvd å legge til SSH-nøkkelen min med ssh-rsa og la ssh-rsa være av. Jeg prøvde også å gjøre SSH-nøkkelen til en linje, men det fungerte heller ikke.

Er det noe annet jeg må gjøre som å laste inn filen på nytt på en eller annen måte?

Løsning

Du bør aldri lagre filen med innholdet som begynner med -----BEGIN RSA PRIVATE KEY----- på serveren, som er din private nøkkel. I stedet må du legge den offentlige nøkkelen i filen ~/.ssh/authorized_keys.

Denne public-nøkkelen har filtypen .pub når den genereres ved hjelp av ssh-keygen, og innholdet begynner med ssh-rsa AAAAB3. (Det binære formatet er beskrevet i svarene på dette spørsmålet).

Tillatelsene til ~/.ssh på serveren skal være 700. Filen ~/.ssh/authorized_keys (på serveren) skal ha en modus på 600. Tillatelsene til den (private) nøkkelen på klientsiden skal være 600.

Hvis den private nøkkelen ikke var beskyttet med et passord, og du legger den på serveren, anbefaler jeg deg å generere en ny:

ssh-keygen -t rsa

Du kan hoppe over dette hvis du er helt sikker på at ingen kan gjenopprette den slettede private nøkkelen fra serveren.

Hvis dette ikke hjelper, kan du kjøre ssh med alternativer for mer utfyllende informasjon:

ssh -vvv user@example.com

På serversiden kan du gå gjennom /var/log/auth.log for detaljer.

Kommentarer (10)

Hvis du har påloggingsbasert autentisering, bruk ssh-copy-id for å legge til dine offentlige nøkler på den eksterne serveren.

ssh-copy-id user@host
Kommentarer (5)
local> scp .ssh/id_dsa.pub remote.com:
local> ssh remote.com
remote> cat id_dsa.pub >> .ssh/authorized_keys
remote> rm id_dsa.pub
remote> exit
Kommentarer (0)