Ssh-agent
Dieser Artikel oder Abschnitt ist noch unvollständig und weist folgende Lücken auf: Bindung an andere Desktops ausser KDE |
--Gehrke (Diskussion) 11:13, 27. Nov. 2013 (CET)
Das Programm ssh-agent aus der Programmfamilie ssh ermöglicht die kurzfristige Speicherung von Passphrases im Arbeitsspeicher, welche zur Absicherung von ssh-Keys verwendet werden. Dadurch entfällt für den Zeitraum der Speicherung die Notwendigkeit, für jede Verwendung des Keys die Passphrase eingeben zu müssen.
Inhaltsverzeichnis
Einführung
Eine erhebliche Steigerung des Sicherheitslevels bei der Verwendung von ssh kann man erreichen, wenn für die Authentifizierung an einem ssh-Server ausschließlich das PublicKey-Verfahren anstatt der Passwort-Authentifizierung verwendet wird. Bei Wahl eines kryptographisch ausreichend starken Schlüssels wird erreicht, dass nur Personen zu einem Login berechtigt sind, die im Besitz des privaten Schlüssels sind.
Um das Schlüsselpaar gegen Missbrauch wie Diebstahl abzusichern, sollte es darüber hinaus bei der Erzeugung mit einer ausreichend starken Passphrase geschützt werden. Problematisch ist in dieser Konstallation aber, dass bei jeder Verwendung des Schlüssels (also bei jedem Login) eine sichere (und damit lange und komplexe) Passphrase angegeben werden muss. Dies kann dazu führen, dass aus Bequemlichkeit kurze und unsichere Passphrases gewählt werden.
Das Programm ssh-agent umgeht dieses Problem, indem es für einen begrenzten Zeitraum die Schlüssel im Arbeitsspeicher hinterlegt. So wird es möglich, dass im betreffenden Zeitraum genau einmal die korrekte Passphrase eingegeben werden muss und beliebig viele password-lose Verbindungen zu allen ssh-Servern aufgebaut werden können, auf denen der öffentliche Schlüssel hinterlegt ist.
Warnung: Da der Schlüssel im RAM abgelegt wird, besteht prinzipiell ein gewisses Risiko, dass unberechtigt darauf zugegriffen wird:
Start/Stop
Starten des Programmes:
$ ssh-agent
Viele Distributionen starten den Agent schon automatisch. Der Parameter '-t' (Timeout) ermöglicht es, die Zeitspanne zu steuern, in welcher der Schlüssel im Arbeitsspeicher verbleibt. Diese Zeitspanne sollte unter Sicherheitsaspekten möglichst kurz sein (kurze Angriffszeit auf das RAM) und unter Bequemlichkeitsaspekten möglichst lang.
Stoppen des Programmes:
$ ssh-agent -k
Überprüfung, ob der Prozess schon läuft:
$ ps aux | grep ssh-agent
Oder durch Ausgabe der relevanten Umgebungsvariablen:
$ echo $SSH_AGENT_PID 25442
Schlüssel verwalten
Passphrase des Standard-Schlüssels merken:
$ ssh-add Enter passphrase for /home/<user>/.ssh/id_dsa:
Der Parameter '-d' erlaubt die Angabe eines Pfades, wenn nicht der Standardschlüssel hinzugefügt werden soll.
Eine Liste der aktuell verwalteten Schlüssel:
$ ssh-add -l 2048 53:f8:b2:84:9b:fc:12:d5:24:33:31:bb:66:22:7e:22 /home/<user>/.ssh/id_dsa (DSA)
Schlüssel nicht mehr verwalten (entfernen):
$ ssh-add -d Identity removed: /home/<user>/.ssh/id_dsa ( <user desc>)
Bindung an die Desktop-Session
Es besteht die Möglichkeit, den Start des Programmes an den Start der jeweiligen Desktop-Session zu knüpfen. Hier wird unmittelbar nach dem Login und Start des Desktops in einem Dialog nach der benötigten Passphrase gefragt, welche dann bei entsprechend großem Timeout für die gesamte Sitzung gültig ist.
Die Lösung ist abhängig von der Wahl des Desktop Environments bzw. Windowmanagers.
KDE
Unter KDE übernimmt das Programm ksshaskpass die Funktionalität der Abfrage der Passphrase über einen Dialog und bietet Support für den KDE-eigenen Passwort-Manager kwallet. Um beim Start des Destops aktiviert zu werden, wird es in den Autostart-Ordner über ein kleines Wrapper-Script (Ausführungs-Berechtigungen 'x' beachten) aufgerufen: |
$ cat ~/.kde4/Autostart/ssh-agent.sh #!/bin/sh export ssh_passphase=ksshaskpass > /dev/null /usr/bin/ssh-add $ ls -l ~/.kde4/Autostart/ssh-agent.sh lrwxrwxrwx 1 <user> users 27 7. Jan 2012 /home/<user>/.kde4/Autostart/ssh-agent.sh -> /home/<user>/bin/ssh-agent.sh |
Windows
Von Windows aus kann Software wie PuTTY oder WinSCP verwendet werden: