Come posso verificare / controllare / testare / convalidare la mia passphrase SSH?


297

Penso di aver dimenticato la passphrase per la mia chiave SSH, ma ho il sospetto di quale potrebbe essere. Come posso verificare se ho ragione?


5
È un passphrase, nessuna password;)
Timo

Risposte:


123

È possibile verificare la passphrase della chiave SSH tentando di caricarla nel proprio agente SSH. Con OpenSSH questo avviene tramite ssh-add.

Una volta terminato, ricordati di scaricare la passphrase SSH dal terminale eseguendo ssh-add -d.


13
Una volta terminato il controllo, scarica la passphrase della chiave SSH dall'agente SSH conssh-add -d
Kache

1
ssh-add richiede i diritti di amministratore sulla macchina, credo. Ricevo un errore: "Impossibile aprire una connessione al tuo agente di autenticazione".
IgorGanapolsky,

@IgorGanapolsky: No, richiede un agente di autenticazione in esecuzione. Modifica gli script o le opzioni di avvio per visualizzarne uno.
Ignacio Vazquez-Abrams,

20
La risposta di Rob è la risposta corretta.
Margarciaisaia,

Se ti capita di usare selinux, potresti anche voler controllare il contesto della home directory e dei file .ssh! Ho avuto la fortuna di poter usare questa semplice soluzione: # restorecon -R -v /home/userper verificare se questo è il problema (sebbene il comando precedente non dovrebbe causare problemi), puoi usare $ ls -lZR <home_dir>per esaminare il contesto. Se non vedi user_home_tnella home directory e ssh_home_tnella .sshdirectory e nel authorized_keysfile, usa restoreconper ripararli.
fbicknel

523

ssh-keygen -y

ssh-keygen -y ti chiederà la passphrase (se ce n'è una).

    Se inserisci la passphrase corretta , ti mostrerà la chiave pubblica associata.
    Se si immette la passphrase errata , verrà visualizzata load failed.
    Se la chiave non ha alcun passphrase, lo farà non richiederà una passphrase e sarà immediatamente vi mostrerà la chiave pubblica associata.

per esempio,

Crea una nuova coppia di chiavi pubblica / privata, con o senza passphrase:

$ ssh-keygen -f /tmp/my_key
...

Ora vedi se riesci ad accedere alla coppia di chiavi:

$ ssh-keygen -y -f /tmp/my_key


Di seguito è riportato un esempio esteso, che mostra l'output.

Crea una nuova coppia di chiavi pubblica / privata, con o senza passphrase:

$ ssh-keygen -f /tmp/my_key
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /tmp/my_key.
Your public key has been saved in /tmp/my_key.pub.
The key fingerprint is:
de:24:1b:64:06:43:ca:76:ba:81:e5:f2:59:3b:81:fe rob@Robs-MacBook-Pro.local
The key's randomart image is:
+--[ RSA 2048]----+
|     .+          |
|   . . o         |
|    = . +        |
|   = + +         |
|  o = o S .      |
|   + = + *       |
|    = o o .      |
|     . .         |
|      E          |
+-----------------+

Tentare di accedere alla coppia di chiavi immettendo la passphrase corretta. Si noti che verrà mostrata la chiave pubblica e lo stato di uscita ( $?) 0indicherà il successo:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBJhVYDYxXOvcQw0iJTPY64anbwSyzI58hht6xCGJ2gzGUJDIsr1NDQsclka6s0J9TNhUEBBzKvh9nTAYibXwwhIqBwJ6UwWIfA3HY13WS161CUpuKv2A/PrfK0wLFBDBlwP6WjwJNfi4NwxA21GUS/Vcm/SuMwaFid9bM2Ap4wZIahx2fxyJhmHugGUFF9qYI4yRJchaVj7TxEmquCXgVf4RVWnOSs9/MTH8YvH+wHP4WmUzsDI+uaF1SpCyQ1DpazzPWAQPgZv9R8ihOrItLXC1W6TPJkt1CLr/YFpz6vapdola8cRw6g/jTYms00Yxf2hn0/o8ORpQ9qBpcAjJN
$ echo $?
0

Tentare di accedere alla coppia di chiavi immettendo una passphrase errata. Si noti che verrà visualizzato il messaggio di errore "caricamento non riuscito" (il messaggio potrebbe differire in base al sistema operativo) e lo stato di uscita ( $?) 1indicherà un errore:

$ ssh-keygen -y -f /tmp/my_key
Enter passphrase:
load failed
$ echo $?
1

Tentativo di accedere a una coppia di chiavi senza passphrase. Si noti che non è richiesta la passphrase, verrà visualizzata la chiave pubblica e lo stato di uscita ( $?) 0indicherà l'esito positivo:

$ ssh-keygen -y -f /tmp/my_key_with_no_passphrase
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDLinxx9T4HE6Brw2CvFacvFrYcOSoQUmwL4Cld4enpg8vEiN8DB2ygrhFtKVo0qMAiGWyqz9gXweXhdmAIsVXqhOJIQvD8FqddA/SMgqM++2M7GxgH68N+0V+ih7EUqf8Hb2PIeubhkQJQGzB3FjYkvRLZqE/oC1Q5nL4B1L1zDQYPSnQKneaRNG/NGIaoVwsy6gcCZeqKHywsXBOHLF4F5nf/JKqfS6ojStvzajf0eyQcUMDVhdxTN/hIfEN/HdYbOxHtwDoerv+9f6h2OUxZny1vRNivZxTa+9Qzcet4tkZWibgLmqRyFeTcWh+nOJn7K3puFB2kKoJ10q31Tq19
$ echo $?
0

2
Se non è presente alcuna password, verrà semplicemente stampata la chiave pubblica associata.
Kyrremann,

1
Grazie @Kyrremann! Ora ho aggiornato la risposta per riflettere ciò.
Rob Bednark,

ssh-keygen -ychiede il file chiave e offre un valore predefinito quando si fa clic sul ritorno come ci si aspetterebbe.
Timo,

Ho usato ssh-keygen -yper controllare la passphrase della mia chiave SSH. Funzionava bene, tranne che il mio Ubuntu è diventato incredibilmente lento. La maggior parte dei programmi potrebbe avviarsi in un minuto o più mentre l'utilizzo della CPU era del 100%. Dopo aver riavviato il mio laptop non sono riuscito ad accedere in quanto ci sono voluti pochi minuti per vedere il mio desktop. Finalmente ho trovato questo problema su Ask Ubuntu . Ho dovuto iniziare gnome-keyring-daemonper risolvere il problema.
Adam Fónagy,

2

Estendendo la soluzione di @ RobBednark a uno specifico scenario Windows + PuTTY, puoi farlo:

  1. Genera coppia di chiavi SSH con PuTTYgen (seguendo la generazione manuale della chiave SSH in Windows ), salvandola in un file PPK;

  2. Con il menu di scelta rapida in Esplora risorse, scegli Modifica con PuTTYgen. Richiederà una password.

Se si digita la password errata, verrà richiesto nuovamente.

Nota, se ti piace scrivere, utilizzare il seguente comando su una cartella che contiene il file PPK: puttygen private-key.ppk -y.


0

Usa "ssh-keygen -p". Puoi aggiungere "-f"

Ti verrà richiesta la vecchia password. Se la password è corretta, verrà richiesto di inserire una nuova password. Se la vecchia password non è corretta, verrà visualizzato "Impossibile caricare la chiave <...>".


-1

Se la tua passphrase deve sbloccare la tua chiave SSH e non hai ssh-agent, ma hai sshd (il demone SSH) installato sul tuo computer, fai:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys;
ssh localhost -i ~/.ssh/id_rsa

Dov'è ~/.ssh/id_rsa.publa chiave pubblica ed ~/.ssh/id_rsaè la chiave privata.


1
Non richiede una
passphrase per

Fa per me, sbloccare l'id_rsa privato per ssh localhost
Alexx Roche,

Ottengo un errore: "ssh: connettiti alla porta host localhost 22: Numero file
errato
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.