Vor einiger Zeit habe ich hier beschrieben, wie man sich über SSH auf einem anderen Rechner einloggen kann ohne ein Passwort einzugeben. Grob zusammengefasst braucht man dazu zunächst ein asymmetrisches Schlüsselpaar. Der öffentliche Teil des Schlüssels wird auf den Remote Client übertragen und diesem bekannt gemacht. Der private Schlüssel bleibt auf dem Local Client und wird dem ssh-agent, einer Software, die mittels des privaten Schlüssels die Authentifizierung übernimmt, per Befehl ssh-add bekannt gemacht.
Was aber, wenn man ssh-add eingibt und
Could not open a connection to your authentication agent.
erhält? In diesem Fall ist der SSH-Agent nicht gestartet. Einfach über ssh-agent lässt sich das Ding leider nicht wirklich starten. Wäre ja auch zu einfach. Versucht man das, erhält man zwar eine Ausgabe wie z.B.
setenv SSH_AUTH_SOCK /tmp/ssh-6b8m2hgTes/agent.94372;
setenv SSH_AGENT_PID 94373;
echo Agent pid 94373;
aber die benötigten Umgebungsvariablen SSH_AGENT_PID und SSH_AUTH_SOCK werden nicht richtig gesetzt. Das kann man durch ein env | grep SSH prüfen. Der Befehl spuckt folgendes aus:
SSH_CLIENT=87.165.26.xxx 64796 22
SSH_CONNECTION=87.165.26.xxx 64796 1xx.2.11.xxx 22
SSH_TTY=/dev/ttyp4
Von SSH_AGENT_PID und SSH_AUTH_SOCK keine Spur.
Richtig macht man es so: ssh-agent /bin/bash. Dabei wird eine neue Shell in der Shell (Subshell) erzeugt und dort die nötigen Umgebungsvariablen gesetzt. Gibt man wieder env | grep SSH ein, erhält man diesmal
SSH_AGENT_PID=94418
SSH_CLIENT=87.165.26.xxx 64796 22
SSH_TTY=/dev/ttyp4
SSH_AUTH_SOCK=/tmp/ssh-v14RRydamk/agent.94417
SSH_CONNECTION=87.165.26.xxx 64796 1xx.2.11.xxx 22
Wunderbar! Noch ein ssh-add, gefolgt vom Passwort des privaten Schlüssels und fertig.
0 Responses to “Das kleine SSH-Tutorial - Teil 2: SSH-Agent starten”
Leave a Reply