Hvordan tilføjer jeg SSH-nøgler til filen authorized_keys?

Jeg har en Ubuntu-server på Amazon EC2, som jeg bruger til udvikling, og i dag ryddede jeg dumt nok alt i min ~/.ssh/authorized_keys-fil. Heldigvis har jeg en SSH åben, så jeg er stadig forbundet, og kan rette filen, men når jeg prøver at sætte min nøglefil tilbage, virker det ikke. Jeg får stadig permission denied fra serveren på min lokale maskine.

authorized_keys har tilladelserne 600. Jeg har prøvet at tilføje min SSH-nøgle med ssh-rsa og lade ssh-rsa være slukket. Jeg har også prøvet at gøre SSH-nøglen til én linje, men det virkede heller ikke.

Er der noget andet, som jeg skal gøre som at genindlæse filen på en eller anden måde?

Løsning

Du bør aldrig gemme filen med indholdet startende med -----BEGIN RSA PRIVATE KEY----- på serveren, det er din private nøgle. I stedet skal du sætte den offentlige nøgle ind i filen ~/.ssh/authorized_keys.

Denne offentlige nøgle har udvidelsen .pub, når den er genereret med ssh-keygen, og dens indhold begynder med ssh-rsa AAAAB3. (Det binære format er beskrevet i svarene på [dette spørgsmål] (https://stackoverflow.com/q/12749858/427545)).

Tilladelserne til ~/.ssh på serveren skal være 700. Filen ~/.ssh/authorized_keys (på serveren) skal have en tilstand på 600. Tilladelserne til den (private) nøgle på klientsiden skal være 600.

Hvis den private nøgle ikke var beskyttet med en adgangskode, og du lagde den på serveren, anbefaler jeg, at du genererer en ny nøgle:

ssh-keygen -t rsa

Du kan springe dette over, hvis du'er helt sikker på, at ingen kan gendanne den slettede private nøgle fra serveren.

Hvis dette ikke hjælper, kan du køre ssh med indstillinger for mere verbositet:

ssh -vvv user@example.com

På serversiden kan du se /var/log/auth.log for at få flere oplysninger.

Kommentarer (10)

Hvis du har login-baseret godkendelse, skal du bruge ssh-copy-id til at tilføje dine offentlige nøgler til fjernserveren.

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)