Ich habe auf Kubuntu 12.04 ein neues Benutzerkonto für einen Freund eingerichtet. Wenn er benutzt ssh
, bekommt er diesen Fehler:
Es konnte keine Verbindung zu Ihrem Authentifizierungsagenten hergestellt werden
Wir führen ssh
einige Bash-Skripte aus.
Nachdem ich mir die Vielzahl von Dingen angesehen habe, die zu diesem Fehler führen können, bin ich auf diese Lösung gestoßen:
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa
Dann kann er das laufen lassen ssh
Befehle (und Bash-Skripte) wie erwartet ausführen.
Vor dem Ausführen dieser beiden Befehle werden die env-Variablen nicht in einem Terminal festgelegt:
$ echo $SSH_AGENT_PID
$ echo $SSH_AUTH_SOCK
$
Nach dem Ausführen der Befehle werden die Umgebungsvariablen wie erwartet festgelegt. Sie bleiben jedoch nicht gesetzt (z. B. in einer anderen Shell oder nach einem Neustart).
Ich möchte wissen, wie man seinen Computer einrichtet, damit er diese beiden Befehle nicht ausführen muss, um die env-Variablen einzustellen. Ich muss sie nicht (jemals) auf meinem Computer ausführen. Bisher sehe ich keinen Unterschied zwischen unseren Maschinen.
Ich sehe diese Information in der Manpage, aber sie sagt mir nicht, wie Ubuntu den Agenten normalerweise automatisch einrichtet oder was auf dem Computer meines Freundes geschieht, so dass dies für ihn nicht funktioniert.
Es gibt zwei Möglichkeiten, einen Agenten einzurichten: Die erste besteht darin, dass der Agent einen neuen Unterbefehl startet, in den einige Umgebungsvariablen exportiert werden, z. B. ssh-agent xterm &. Zum anderen druckt der Agent die erforderlichen Shell-Befehle (entweder sh (1) oder csh (1) Syntax kann generiert werden), die in der aufrufenden Shell ausgewertet werden können, z. B. eval
ssh-agent -s
für Bourne-Shells wie sh (1) oder ksh (1) und evalssh-agent -c
für csh (1) und Derivate.
Nach der Installation acct
und dem Neustart ist dies die Ausgabe von 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
Von der Manpage:
F - Befehl wird nach einem Fork ausgeführt, jedoch ohne folgenden Exec
Ich bin mir nicht sicher, ob das von Bedeutung ist.
X11/Xsession.options:use-ssh-agent
und X11/Xsession.d/90x11-common_ssh-agent:SSHAGENT=/usr/bin/ssh-agent
. Ich werde es versuchen acct
und lastcomm
weiter. Danke
lastcomm
für eine vollständige Sitzung, nicht nur den ssh-agent
Prozess. Der Punkt ist, in welcher Reihenfolge verschiedene Programme gestartet werden.
ssh-agent
wird normalerweise von gestartet/etc/X11/Xsession.d/90x11-common_ssh-agent
. Dies kann durch Entfernenuse-ssh-agent
von unterdrückt werden/etc/X11/Xsession
. Sind diese Dateien korrekt? Wurde der Agent gestartet und dann getötet oder wurde er nie gestartet? (Installiereacct
undlastcomm
starte nach dem Einloggen, um zu sehen, welche Programme gestartet wurden.)