Ho creato un nuovo account utente per un amico su Kubuntu 12.04. Quando usa ssh
ottiene questo errore:
Impossibile aprire una connessione al tuo agente di autenticazione
Stiamo eseguendo ssh
in alcuni script bash.
Dopo aver esaminato l'ampia varietà di cose che possono portare a quell'errore, mi sono imbattuto in questa soluzione:
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa
Quindi può eseguire ssh
comandi (e 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 esempio, in una shell diversa o dopo il riavvio).
Voglio sapere come configurare 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 c'è di diverso tra le nostre macchine.
Vedo queste informazioni nella pagina man, ma non mi dicono come Ubuntu stia normalmente configurando automaticamente l'agente o cosa sta succedendo sul computer del mio amico in modo che questo non funzioni per lui.
Esistono due modi principali per configurare un agente:il primo è che l'agente
avvii un nuovo sottocomando in cui vengono
esportate alcune variabili di ambiente, ad esempio ssh-agent xterm &. La seconda è che l'agente stampa i
comandi shell necessari (è possibile generare la sintassi sh(1) o csh(1)
che possono essere valutati nella shell chiamante, ad esempio eval ssh-agent -s
per
shell di tipo Bourne come sh(1) o ksh(1) e eval ssh-agent -c
per
csh(1) e derivati.
Dopo aver installato acct
e riavviando, 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 successivo exec
Non sono sicuro che sia significativo.
Risposta accettata:
Hai detto che il tuo utente è ssh
ing in, non l'accesso localmente. Quindi use-ssh-agent
in /etc/X11/Xsession.options
è una falsa pista:non verrà eseguito su sessioni SSH, solo quando si accede a un desktop della GUI X11 localmente (o utilizzando una sessione X11 virtuale come su VNC o RDP).
Invece, dovresti controllare se libpam-ssh
è installato su entrambi i sistemi. Può essere configurato per autenticare un utente utilizzando passphrase di chiave privata SSH, ma è facoltativo e dovrai posizionare la chiave in modo specifico su ~/.ssh/login-keys.d/
per quella funzionalità.
La sua altra caratteristica, tuttavia, è avviare automaticamente un agente SSH su qualsiasi sessione di accesso e aggiungere automaticamente chiavi private SSH all'agente se la loro passphrase è la stessa della password di accesso dell'utente. Penso che questa potrebbe essere la causa del diverso comportamento tra i tuoi sistemi.