Ich habe für einen Freund ein neues Benutzerkonto auf Kubuntu 12.04 eingerichtet. Wenn er ssh
verwendet er bekommt diesen Fehler:
Es konnte keine Verbindung zu Ihrem Authentifizierungsagenten hergestellt werden
Wir führen ssh
aus in einigen Bash-Skripten.
Nachdem ich mich umgesehen habe, was zu diesem Fehler führen kann, bin ich auf diese Lösung gestoßen:
$ eval `ssh-agent -s`
$ ssh-add ~/.ssh/some_id_rsa
Dann kann er ssh
ausführen Befehle (und Bash-Skripte) wie erwartet.
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 env-Variablen 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 festzulegen. Ich muss sie nicht (jemals) auf meinem Computer ausführen. Bisher sehe ich nicht, was zwischen unseren Maschinen anders ist.
Ich sehe diese Informationen auf der Manpage, aber sie sagen mir nicht, wie Ubuntu den Agenten normalerweise automatisch einrichtet oder was auf dem Computer meines Freundes passiert, sodass dies bei ihm nicht funktioniert.
Es gibt zwei Möglichkeiten, einen Agenten einzurichten:Der erste ist, dass der
Agent einen neuen Unterbefehl startet, in den einige Umgebungsvariablen
exportiert werden, zB ssh-agent xterm &. Zweitens gibt der Agent die
benötigten Shell-Befehle aus (es kann entweder sh(1)- oder csh(1)-Syntax generiert werden),
die in der aufrufenden Shell ausgewertet werden können, zB eval ssh-agent -s
für
Bourne-artige Shells wie sh(1) oder ksh(1) und eval ssh-agent -c
für
csh(1) und Derivate.
Nach der Installation von acct
und Neustart, dies ist 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
Aus der Manpage:
F — Befehl, der nach einem Fork ausgeführt wird, aber ohne folgendes Exec
Ich bin mir nicht sicher, ob das von Bedeutung ist.
Akzeptierte Antwort:
Sie haben erwähnt, dass Ihr Benutzer ssh
ist einloggen, nicht lokal einloggen. Also der use-ssh-agent
in /etc/X11/Xsession.options
ist ein Ablenkungsmanöver:Es wird nicht in SSH-Sitzungen ausgeführt, sondern nur, wenn Sie sich lokal bei einem X11-GUI-Desktop anmelden (oder eine virtuelle X11-Sitzung wie über VNC oder RDP verwenden).
Stattdessen sollten Sie prüfen, ob libpam-ssh
ist auf beiden Systemen installiert. Es kann so konfiguriert werden, dass ein Benutzer mit SSH-Passphrasen für private Schlüssel authentifiziert wird, aber das ist optional, und Sie müssen den Schlüssel speziell in ~/.ssh/login-keys.d/
platzieren für diese Funktionalität.
Die andere Funktion besteht jedoch darin, einen SSH-Agenten bei jeder Anmeldesitzung automatisch zu starten und dem Agenten automatisch private SSH-Schlüssel hinzuzufügen, wenn ihre Passphrase mit dem Anmeldekennwort des Benutzers übereinstimmt. Ich denke, dies könnte die Ursache für das unterschiedliche Verhalten Ihrer Systeme sein.