ssh-copy-id versus manuel kopi id_rsa.pub

Fra den ene dag til den anden begyndte vores firmaserver at bede mig om min SSH-adgangskode.

Den første ting, jeg tjekkede, var at se, om min nøgle var inde i .ssh/authorized_keys på serveren. Min nøgle var inde, intet ændrede sig. Også i /etc/ssh/sshd_config intet har ændret sig.

Så forsøgte jeg at gøre denne procedure på frisk installeret Ubuntu16-server. Efter at have gennemført disse 5 trin, bad den nye server mig igen om SSH-adgangskode.

Kommandoen ssh-copy-id har endelig opnået nøglefri SSH-login, men jeg har bemærket, at det .ssh/authorized_keys har tre linjer: en startende med ssh-dss og 2x startende med ssh-rsa

Nu kan jeg huske, at 5-trins procedure fra ovenstående link har fungeret tidligere med kun en nøgle.

Er der noget, der er ændret for nylig? Hvorfor fungerer fremgangsmåden ovenfra ikke længere?

Rediger: Da ssh-copy-id kopierer i alt 3 nøgler til .ssh/authorized_keys disse nøgler kan findes i følgende filer:

~/.ssh/id_dsa

~/.ssh/sshkey.pub

~/.ssh/id_rsa.pub

så jeg slettede linje for linje fra ekstern “s .ssh/authorized_keys fil

slettet ~/.ssh/id_dsa linje – automatisk login lykkedes

slettet ~/.ssh/id_rsa.pub linje – automatisk login lykkedes

slettet ~/.ssh/sshkey.pub linje – automatisk login ikke lykkedes – bad om adgangskode

Kun indhold fra ~/.ssh/sshkey.pub er nødvendigt. Hvorfor SSH sammenligner sshkey.pub og ikke id_rsa.pub som i eksemplet fra online tutorial?

Kommentarer

  • Bestemt ikke på grund af nogen grundlæggende ændringer i filen author__keys eller ville jeg har vågnet op en dag for at finde mig selv låst ude af en hel masse maskiner.
  • hvilken slags nøgle og hvor mange bits? den server, du ' har problemer med, kan have højere standarder muligvis på grund af en opgradering af sshd. 1024 bit RSA blev tidligere anset for acceptabel. i dag kræves 2048 eller 4096 bit.
  • tilføj også output fra ssh -v your-remote-server til dit spørgsmål.
  • Har du stadig 640 flag på autoriserede_taster eller noget mere begrænsende (600)?

Svar

Det ser ud til, at ssh-copy-id er blot en bekvemhedsfunktion. Det kontrollerer, om nøglerne allerede blev eksporteret til maskinen, det opretter .ssh katalog, hvis det er nødvendigt, men dybest set tilføjer det bare offentlige nøgler til .ssh/authorized_keys . ssh-copy-id er et shell-script (i openssh), så du kan læse dets kode (vi `which ssh-copy-id`) til sidst:

[ "$DRY_RUN" ] || printf "%s\n" "$NEW_IDS" | \ ssh "$@" "exec sh -c "cd ; umask 077 ; mkdir -p .ssh && { [ -z ""`tail -1c .ssh/authorized_keys 2>/dev/null`"" ] || echo >> .ssh/authorized_keys ; } && cat >> .ssh/authorized_keys || exit 1 ; if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi"" \ || exit 1 

Under godkendelse kontrolleres kun authorized_keys. Fra openssh dokumentation :

Filen ~ / .ssh / autoriseret_keys viser offentligheden nøgler, der er tilladt til at logge på. Når brugeren logger på, fortæller ssh-programmet serveren, hvilket nøglepar det vil bruge til godkendelse. Klienten beviser, at den har adgang til den private nøgle, og serveren kontrollerer, at den tilsvarende offentlige nøgle er autoriseret til at acceptere kontoen.

Jeg håber, at dette svar dit spørgsmålstitel “ssh-copy-id versus manual copy id_rsa.pub”. Denne fil ~/.ssh/sshkey.pub Jeg har det ikke, så jeg håber, du selv har løst problemerne med din opsætning. Under alle omstændigheder kan du bare manuelt kopiere den offentlige nøgle til authorized_keys bruger ikke ssh-copy-id.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *