GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Ssh-Agent wird nicht eingerichtet (ssh_auth_sock, Ssh_agent_pid Env Vars Not Set)?

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).

Siehe auch:Wie führe ich ein bestimmtes Programm als root ohne Passwortabfrage aus?

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.


Linux
  1. So richten Sie SSH-Tunneling ein

  2. Env oder nicht Env?

  3. Env Vars in /etc/environment nicht global sichtbar?

  4. Vim läuft nicht in Tmux?

  5. Setzen von +a setzt das -a-Flag nicht zurück?

So richten Sie eine passwortlose SSH-Anmeldung ein

Erste Schritte mit LibreCAD

So richten Sie SSH unter CentOS und RHEL ein

So richten Sie SSH-Schlüssel unter Ubuntu 18.04 ein

ssh-Schlüssel ssh-agent bash und ssh-add

Wie setze ich eine Datei als NICHT ausführbar?