TIPP: ssh-agent abgestorben: So wieder beleben
Symptom
-------
Plötzlich fragen alle möglichen Kommandos, die
ssh benutzen, nach der "passphrase" des SSH-Schlüssels
und das Kommando::
ssh-add -l
liefert plötzlich::
Could not open a connection to your authentication agent.
und bei anschliessendem Anschauen der Prozess-Liste
stellt sich heraus, dass der Prozess "ssh-agent"
„verschwunden“ ist. Das ist sehr lästig, wenn man
gerade „tief“ in der Arbeit steckt und ein gutes
Dutzend Terminals auf hat, mit denen man auch per
SSH auf andere Rechner zugreifen möchte.
Tipp
----
Wer das Abmelden und komplette Neuaufbauen der Sitzung
vermeiden will, kann dann dieses kleine Shell-Skript
hier benutzen:
-------8<-----schnipp-schnapp-----8<--------8<--------8<-------
#!/usr/bin/env bash
set -o errexit
if [ -z "$SSH_AUTH_SOCK" ]
then >&2 echo "can't revive agent: SSH_AUTH_SOCK not set"
exit 1
fi
SSH_AUTH_DIR=$(dirname $SSH_AUTH_SOCK)
if [ ! -d $SSH_AUTH_DIR ]
then mkdir $SSH_AUTH_DIR
else rm -f $SSH_AUTH_SOCK
fi
chmod go-rwx $SSH_AUTH_DIR
ssh-agent -a $SSH_AUTH_SOCK
ssh-add
------->8-----schnapp-schnipp----->8-------->8-------->8-------
Ich habe das unter dem Namen "restart_ssh_agent" in meinem
$HOME/bin Verzeichnis abgelegt.
Erklärung
---------
In Desktop-GUI-Sitzungen gibt es eine Umgebungs-Variable
$SSH_AUTH_SOCK, die normalerweise beim Start der Sitzung
mit Hilfe der Ausgabe des ssh-agent gesetzt und an alle
Prozesse weiter „vererbt“ wird. Dieses "Socket" soll wieder
benutzt werden.
Credits
-------
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/99065
Weil ich eine ganze Weile gebraucht hatte, um diesen
Workaround zu finden, habe ich das hier beschrieben.
Viele Grüße, Peter Funk
--
Peter Funk, home: ✉Oldenburger Str.86, D-27777 Ganderkesee
mobile:+49-179-640-8878 phone:+49-421-20419-0 <http://www.artcom-gmbh.de/>
office: ArtCom GmbH, ✉Haferwende 2, D-28357 Bremen, Germany
Reply to: