Ho creato un nuovo account utente per un amico su Kubuntu 12.04. Quando usa ssh
, riceve questo errore:
Impossibile aprire una connessione al tuo agente di autenticazione
Stiamo eseguendo ssh
alcuni script bash.
Dopo aver esaminato la grande varietà di cose che possono portare a quell'errore, ho trovato questa soluzione:
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa
Quindi può eseguire i ssh
comandi (e gli script bash) come previsto.
Prima di eseguire questi due comandi, le variabili env non sono impostate in un terminale:
$ echo $SSH_AGENT_PID
$ echo $SSH_AUTH_SOCK
$
Dopo aver eseguito i comandi, le variabili env vengono impostate come previsto. Tuttavia, non rimangono impostati (ad es. In una shell diversa o dopo il riavvio).
Voglio sapere come impostare il suo computer in modo che non debba eseguire quei due comandi per impostare le variabili env. Non ho bisogno di eseguirli sul mio computer (mai). Finora non vedo cosa sia diverso tra le nostre macchine.
Vedo queste informazioni nella pagina man, ma non mi dice come Ubuntu stia configurando automaticamente l'agente o cosa stia succedendo sulla macchina del mio amico in modo che non funzioni per lui.
Esistono due modi principali per configurare un agente: Il primo è che l'agente avvia un nuovo sottocomando in cui vengono esportate alcune variabili di ambiente, ad esempio ssh-agent xterm &. Il secondo è che l'agente stampa i comandi shell necessari (è possibile generare la sintassi sh (1) o csh (1)) che possono essere evitati nella shell chiamante, ad esempio eval
ssh-agent -s
per shell di tipo Bourne come sh (1) o ksh (1) ed evalssh-agent -c
per csh (1) e derivati.
Dopo l'installazione acct
e il riavvio, questo è l'output di lastcomm
:
ssh-agent F newuser __ 0.12 secs Wed Aug 7 11:02
ssh-agent F newuser __ 0.00 secs Wed Aug 7 20:34
ssh-agent F newuser __ 0.02 secs Wed Aug 7 20:02
ssh-agent F newuser __ 0.01 secs Thu Aug 8 12:39
ssh-agent F newuser __ 0.02 secs Thu Aug 8 07:45
Dalla pagina man:
F - comando eseguito dopo un fork ma senza un seguente exec
Non sono sicuro che sia significativo.
X11/Xsession.options:use-ssh-agent
e X11/Xsession.d/90x11-common_ssh-agent:SSHAGENT=/usr/bin/ssh-agent
. Ci proverò acct
e lastcomm
dopo. Grazie
lastcomm
per una sessione completa, non solo il ssh-agent
processo. Il punto è vedere in quale ordine vengono avviati i vari programmi.
ssh-agent
viene normalmente avviato/etc/X11/Xsession.d/90x11-common_ssh-agent
. Questo può essere eliminato rimuovendouse-ssh-agent
da/etc/X11/Xsession
. Quei file sono corretti? L'agente è stato avviato e quindi ucciso o mai avviato? (Installaacct
ed eseguilastcomm
dopo l'accesso per vedere quali programmi sono stati lanciati.)