ssh-copy-id versus handmatige kopie id_rsa.pub

Van de ene op de andere dag begon onze bedrijfsserver mij om mijn SSH-wachtwoord te vragen.

Het eerste dat ik controleerde, was om te zien of mijn sleutel zich in .ssh/authorized_keys op de server bevond. Mijn sleutel zat erin, er veranderde niets. Ook in /etc/ssh/sshd_config is er niets veranderd.

Toen probeerde ik deze procedure vers uit te voeren. geïnstalleerde Ubuntu16-server. Na het voltooien van deze 5 stappen, vroeg de nieuwe server me opnieuw om het SSH-wachtwoord.

Het ssh-copy-id commando heeft eindelijk een sleutelloze SSH login voltooid, maar ik heb gemerkt dat .ssh/authorized_keys heeft drie regels: een die begint met ssh-dss en 2x begint met ssh-rsa

Nu herinner ik me dat de procedure van 5 stappen via de bovenstaande link in het verleden werkte met slechts één sleutel.

Is er recentelijk iets veranderd? Waarom werkt de bovenstaande procedure niet meer?

Bewerken: sinds ssh-copy-id in totaal 3 sleutels naar .ssh/authorized_keys die sleutels kopieert kan worden gevonden in de volgende bestanden:

~/.ssh/id_dsa

~/.ssh/sshkey.pub

~/.ssh/id_rsa.pub

dus ik verwijderde regel voor regel van remote “s .ssh/authorized_keys bestand

verwijderd ~/.ssh/id_dsa regel – automatisch inloggen geslaagd

verwijderd ~/.ssh/id_rsa.pub regel – automatisch inloggen geslaagd

verwijderd ~/.ssh/sshkey.pub line – auto login niet geslaagd – wachtwoord gevraagd

Alleen inhoud van ~/.ssh/sshkey.pub is nodig. Waarom SSH sshkey.pub vergelijkt en niet id_rsa.pub zoals in het voorbeeld van de online tutorial?

Reacties

  • Zeker niet vanwege fundamentele wijzigingen in het geautoriseerde_keys-bestand of ik zou ben op een dag wakker geworden en merkte dat ik geen toegang meer had tot een hele reeks machines.
  • wat voor soort sleutel en hoeveel bits? de server waar je ' problemen mee heeft, heeft mogelijk hogere standaarden, mogelijk als gevolg van een upgrade van sshd. 1024 bit RSA werd vroeger als acceptabel beschouwd. tegenwoordig zijn 2048 of 4096 bit vereist.
  • Voeg ook de output van ssh -v your-remote-server toe aan je vraag.
  • Heb je nog steeds de 640 vlaggen op geautoriseerde_sleutels of iets beperkter (600)?

Antwoord

Het lijkt erop dat ssh-copy-id is slechts een gemaksfunctie. Het controleert of de sleutels al naar de machine zijn geëxporteerd, het maakt indien nodig een .ssh directory aan, maar in feite voegt het alleen openbare sleutels toe aan .ssh/authorized_keys . ssh-copy-id is een shellscript (in openssh), dus je kunt de code (vi `which ssh-copy-id`) uiteindelijk lezen:

[ "$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 

Tijdens authenticatie worden alleen authorized_keys gecontroleerd. Van openssh documentatie :

Het bestand ~ / .ssh / geautoriseerde_keys geeft een overzicht van de openbare sleutels die zijn toegestaan om in te loggen. Wanneer de gebruiker inlogt, vertelt het ssh-programma de server welk sleutelpaar het wil gebruiken voor authenticatie. De client bewijst dat hij toegang heeft tot de private key en de server controleert of de corresponderende publieke sleutel geautoriseerd is om de account te accepteren.

Ik hoop dat dit antwoord geeft de titel van uw vraag “ssh-copy-id versus handmatige kopie id_rsa.pub”. Dit bestand ~/.ssh/sshkey.pub heb ik niet, dus ik hoop dat je de problemen met je installatie zelf hebt opgelost. Hoe dan ook, ja, je kunt de openbare sleutel gewoon handmatig kopiëren naar authorized_keys gebruikt geen ssh-copy-id.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *