Il comando ssh-add non aggiunge la mia identità a ssh-agent


20

Ho appena installato Ubuntu 13.10 e stavo per aggiungere la mia identità al mio ssh-agent, quindi ho aperto un Terminale e l'ho fatto

bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ ssh-add
bjorgvin@buntu:~$ ssh-add -l
The agent has no identities.
bjorgvin@buntu:~$ 

qualche idea?

Risposte:


26

Da man ssh-add:

ssh-add aggiunge le identità della chiave privata all'agente di autenticazione, ssh-agent (1). Se eseguito senza argomenti, aggiunge i file ~ / .ssh / id_rsa, ~ / .ssh / id_dsa, ~ / .ssh / id_ecdsa e ~ / .ssh / identity. [...]

I file di identità non devono essere leggibili da chiunque tranne l'utente. Si noti che ssh-add ignora i file di identità se sono accessibili da altri.

Quindi, a causa The agent has no identities.dell'errore, probabilmente non hai quei file o forse quei file sono accessibili da altri. Puoi verificarli usando il seguente comando:

ls -l ~/.ssh

Inoltre, dopo aver eseguito il ssh-addcomando, esegui echo $?per visualizzare lo stato di errore del comando precedente. Se lo stato di uscita ha restituito 0, il comando è stato eseguito correttamente. Se lo stato di uscita ha restituito un valore diverso da zero, l'esecuzione del comando non è riuscita.

Vedi man ssh-addper maggiori informazioni.


vero, non ho quei file e il valore di uscita ssh-addera 1 ma non 0. c'è ovviamente qualche problema con le mie autorizzazioni poiché i file non sono stati creati. Hai idea di come potrei risolvere questo problema? la directory ~/.sshesiste (è vuota) ma non viene visualizzata quando lo facciols -l
bjorgvin,

Ho eseguito questo comando in ssh-keygen -q -t rsa -N 'password' -f ~/.ssh/id_rsamodo che man ssh-keygen abbia aiutato, grazie.
bjorgvin,

1
Ciò ha dato il suggerimento all'importazione nella giusta direzione per me. Avevo più chiavi ssh e prima dovevo aggiungere la chiave corretta usando ssh-add <keyname>. Quindi ha funzionato come un incanto. thx
paulroho,

3
Per qualche motivo, non avevo alcun output durante l'esecuzione ssh-adddopo aver inserito la passphrase, (non funzionava secondo la $?returing 1. Ho provato chmod 600 ~/.ssh/id_rsa* senza fortuna. Ho generato una nuova chiave da zero ssh-keygene poi ha funzionato. Triste ma almeno è ok ora (la chiave non funzionante è stata generata utilizzando ssh-keygen -t rsa -b 4096 -C "your_email@example.com", ssh-keygenquesta volta ho eseguito solo ).
GabLeRoux

1
Ho dovuto eseguire le seguenti operazioni in questo ordine: (se necessario, generare una nuova chiave ssh e assicurarsi di aggiungere la chiave .pub a github), quindi cd ~/.ssh && ls -lahper visualizzare le autorizzazioni di lettura / scrittura nella cartella .ssh, modificare tutte le chiavi ) con chmod 400 myKeyallora ssh-add **ABSOLUTE**pathToKey se non aggiungi il percorso ASSOLUTO , non funzionerà. Quindi, ssh -vT git@github.com
testalo

3

Oltre alle considerazioni precedenti, ho scoperto che se si utilizza una shell alternativa, potrebbe essere necessario configurarlo per caricare ssh-agent. Ad esempio, in Zsh, si deve aggiungere ssh-agenta pluginsin .zshrc.

Questo metodo funziona alla grande su Ubuntu 17.10 con l'ultimo Zsh

Altri hanno scoperto che con le id_ed25519chiavi rsafunzionava senza un plugin. Dopo aver aggiunto ssh-agenta ~/.zshrc, riavvia la shell con exec "$SHELL"ed esegui:ssh-add ~/.ssh/id_ed25519

Enter passphrase for ~/.ssh/id_ed25519: 
Identity added: ~/.ssh/id_ed25519 (user@host)

Aggiungi il plug-in ssh-agent a .zshrc tramite le istruzioni qui: github.com/robbyrussell/oh-my-zsh/tree/master/plugins/ssh-agent
Kariem
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.