Hi Tobias,
On Fri, May 11, 2007 at 09:30:50 +0200, Tobias Schlemmer wrote:
Am besten vermeidest Du die Passwortabfragen durch Public Key Authentication und ssh-agent / Agent Forwarding.
Das wuerde ich evtl. auch machen, aber aber schon bei der ersten Verbindung hab ich das bisher nicht hinbekommen. Und die zweite hat den Nachteil, dass das Homeverzeichnis vollkommen oeffentlich per WWW abrufbar ist. Da ist mir ein .ssh-Verzeichnis unsympathisch, auch wenn ich weiss, wie ich dem IIS (!) verbieten kann, da reinzugehen.
Public Key Authentication bedeutet nicht automatisch, dass es kein Passwort mehr gibt. Nur wird dort anstelle des Account-Passworts die Passphrase des privaten Schluessels erfragt. Um die Passphrase nicht dauernd eingeben zu muessen, kann ssh-agent sie zwischenspeichern.
+------+ +-------+ +-------+ |client|------->|server1|------>|server2| +------+ +-------+ +-------+
Auf "server1" und "server2" muss kein privater ssh-Key liegen, den brauchst Du _nur_ auf "client".
ssh-Schluesselpaar auf "client" erzeugen: $ ssh-keygen -t dsa
Den Dateinamen mit Return bestaetigen, als Passphrase etwas sicheres/sinnvolles waehlen. Der private Schluessel ~/.ssh/id_dsa verbleibt auf "client" und ist durch die Passphrase geschuetzt. Den oeffentlichen Schluessel ~/.ssh/id_dsa.pub hinterlegst Du auf "server1" und "server2" jeweils unter dem Namen ~/.ssh/authorized_keys.
Wenn Du den oeffentlichen Schluessel per scp auf "server1" und "server2" gelegt hast, startest Du auf "client" den ssh-agent: $ eval $(ssh-agent)
Eventuell laeuft ssh-agent schon, das kannst Du an den Umgebungsvariablen SSH_AGENT_PID und SSH_AUTH_SOCK sehen. Dann fuegst Du den privaten Schluessel zum Agent hinzu: $ ssh-add ~/.ssh/id_dsa
Es wird nach der oben festgelegten Passphrase gefragt. Danach solltest Du in der Lage sein, Dich ohne Passwort von "client" auf "server1" einzuloggen. Wenn Du jetzt noch Agent Fowarding fuer den ssh-Client auf "client" einschaltest, kannst Du Dich ohne Passwort von "client" auf "server2" einloggen: $ ssh -t server1 -t server2
Agent Forwarding konfigurierst Du in ~/.ssh/config:
Host server1 FowardAgent yes
Fuer die spaetere Benutzung musst Du nur sicherstellen, dass ssh-agent auf "client" laeuft und der Schluessel hinzugefuegt wurde (koennte man beim Login auf "client" automatisieren).
Gruss, Chris