ssh-copy-id contro copia manuale id_rsa.pub

Da un giorno allaltro, il nostro server aziendale ha iniziato a chiedermi la mia password SSH.

La prima cosa che ho controllato è stato di vedere se la mia chiave era allinterno di .ssh/authorized_keys sul server. La mia chiave era dentro, non è cambiato nulla. Anche in /etc/ssh/sshd_config non è cambiato nulla.

Quindi ho provato a eseguire questa procedura di recente server Ubuntu16 installato. Dopo aver completato questi 5 passaggi, il nuovo server mi ha chiesto di nuovo la password SSH.

Il comando ssh-copy-id ha finalmente completato laccesso SSH senza chiave, ma ho notato che .ssh/authorized_keys ha tre righe: una che inizia con ssh-dss e 2x che inizia con ssh-rsa

Ora ricordo che la procedura in 5 passaggi dal link sopra ha funzionato in passato con una sola chiave.

È cambiato qualcosa di recente? Perché la procedura dallalto non funziona più?

Modifica: poiché ssh-copy-id copia in tutto 3 chiavi per .ssh/authorized_keys quelle chiavi può essere trovato nei seguenti file:

~/.ssh/id_dsa

~/.ssh/sshkey.pub

~/.ssh/id_rsa.pub

quindi ho eliminato riga per riga dal file “s .ssh/authorized_keys remoto

riga ~/.ssh/id_dsa cancellata – login automatico riuscito

riga ~/.ssh/id_rsa.pub cancellata – login automatico riuscito

riga ~/.ssh/sshkey.pub eliminata – accesso automatico non riuscito – password richiesta

Sono necessari solo i contenuti di ~/.ssh/sshkey.pub. Perché SSH confronta sshkey.pub e non id_rsa.pub come nellesempio dal tutorial online?

Commenti

  • Certamente non a causa di modifiche fondamentali al file authorized_keys o lo farei un giorno mi sono svegliato per trovarmi bloccato fuori da un sacco di macchine.
  • che tipo di chiave e quanti bit? il server con cui ' stai riscontrando problemi potrebbe avere standard più elevati, probabilmente a causa di un aggiornamento di sshd. Un tempo RSA a 1024 bit era considerato accettabile. al giorno doggi sono richiesti 2048 o 4096 bit.
  • Inoltre, aggiungi loutput di ssh -v your-remote-server alla tua domanda.
  • Hai ancora il 640 flag su authorized_keys o qualcosa di più restrittivo (600)?

Answer

Sembra che ssh-copy-id è semplicemente una funzione utile. Controlla se le chiavi sono già state esportate sulla macchina, crea la directory .ssh se necessario, ma fondamentalmente aggiunge le chiavi pubbliche a .ssh/authorized_keys . ssh-copy-id è uno script di shell (in openssh), quindi puoi leggerne il codice (vi `which ssh-copy-id`) alla fine:

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

Durante lautenticazione vengono selezionati solo authorized_keys. Dalla documentazione di openssh:

Il file ~ / .ssh / authorized_keys elenca il pubblico chiavi che sono consentite per il login. Quando lutente effettua il login, il programma ssh dice al server quale coppia di chiavi vorrebbe usare per lautenticazione. Il client dimostra di avere accesso alla chiave privata e il server verifica che la chiave pubblica corrispondente sia autorizzata ad accettare laccount.

Spero che questo risponda il titolo della tua domanda “ssh-copy-id contro manual copy id_rsa.pub”. Questo file ~/.ssh/sshkey.pub non ce lho, quindi spero che tu abbia risolto i problemi con la configurazione da solo. Ad ogni modo, sì, puoi semplicemente copiare manualmente la chiave pubblica su authorized_keys non utilizza ssh-copy-id.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *