* Sebastian G�ndisch ([EMAIL PROTECTED]) wrote/schrieb:

> Es ist nicht direkt ein Problem, aber ein nettes Feature.
> Ich w�rde gerne aus einem Script heraus auf einem anderen Rechner andere
> Scripte bzw Befehle ausf�hren, ohne mich von Hand �ber Telnet oder SSH auf dem
> Rechner einzuloggen u.s.w. .
> Kennt jemand von euch einen "�blichen" Weg oder Tools oder Ideen. 

Stehen beide Rechner im selben freundlichen Netz, oder hast Du ein
feindliches Netz (Internet) dazwischen?

Wenn sie im selben Netz (z.B. zuhause) stehen, dann per /etc/hosts.equiv
daf�r sorgen, da� die R-Kommandos ohne Kennwort gehen, und dann die
gew�nschten Befehle per rsh starten. So starte ich hier Fetchmail:

        xterm -e rsh betty fetchmail -van

Auf dem Server (betty) steht in /etc/hosts.equiv einfach der Name meiner
Workstation. 

Schlechte Methode. Nur f�r Null-Sicherheit wie zuhause geeignet.

Hinweis: Was jetzt kommt, ist viel einfacher und benutzerfreundlicher, als 
es aussieht, also bitte geduldig lesen und schrittweise ausprobieren. ;-)

Wenn das ganze sicherer sein soll, brauchst Du SSH mit RSA-Authentication.
Das ist ein Challenge-Response Verfahren mit asymmetrischer
Verschl�sselung, f�r das Du dann nat�rlich ein Paar aus privatem und
�ffentlichem Schl�ssel ben�tigst.

Dazu erzeugst Du Dir mit "ssh-keygen" ein Schl�sselpaar. Den �ffentlichen
Schl�ssel h�ngst Du auf dem entfernten Server an die Datei
~/.ssh/authorized_keys. Dann sorgst Du daf�r, da� der entfernte Server
RSA-Authentication durchf�hrt. In der sshd_config mu� dazu dort stehen: 

        RSAAuthentication yes

Wenn Du Dich jetzt per SSH auf den entfernten Server verbindest, solltest
Du nach der Passphrase f�r den RSA-Key, und nicht mehr nach Deinem Kennwort
gefragt werden. Wenn in der Abfrage "RSA" steht, ist alles in Ordnung.

Die einfache Methode, kein Kennwort mehr einzugeben, w�re jetzt, das
Kennwort per ssh-keygen zu "nullen", also f�r den privaten Schl�ssel keine
Passphrase mehr zu haben. Diese Methode saugt aber. Wer die Schl�sseldatei
in seinen Besitz bringt, kann sich dann f�r Dich ausgeben. Wenn Du das 
machen willst, findest Du am besten per man ssh-keygen raus, wie es geht. 
:-) 

Es geht aber auch richtig geil (sorry...): Man kann einen sogenannten
SSH-Agent starten. Dem gibt man einen Kindproze�, z.B. eine Shell, mit. Das
geht z.B. so:

        $ ssh-agent bash

Dann l�uft der Agent. Dem laufenden Agent kannst Du nun das Kennwort f�r
Deinen RSA-Key anvertrauen, indem Du in der von ihm gestarteten Shell den
Befehl "ssh-add" aufrufst:

        $ ssh-add
        Need passphrase for /home/martin/.ssh/identity
        Enter passphrase for [EMAIL PROTECTED]: 
        Identity added: /home/martin/.ssh/identity ([EMAIL PROTECTED])

Wenn Du jetzt in der unter dem SSH-Agent laufenden Shell "ssh" oder "scp"
aufrufst, wirst Du nicht mehr nach dem Kennwort gefragt. Der SSH-Agent wei�
es schon.

So ist das aber langweilig, weil man ja immer "ssh-agent bash" starten mu�.
Das Maximum an Coolness ist erreicht, wenn der ssh-agent der Parent-Proze�
aller Fenster auf Deinem Desktop ist. Also, in ~/.xinitrc folgendes
reinschreiben (es folgt auszugsweise meine xinitrc):

        WM=enlightenment
        exec ssh-agent $WM

Alle Prozesse in Deiner X-Umgebung sind jetzt also Kinder des SSH-Agent.
Jetzt mu�t Du nur noch einmal (am besten irgendwie per Autostart) ssh-add
ausf�hren, wenn Du Dich in X anmeldest. Danach wird Dein SSH-Kennwort in 
JEDEM xterm bekannt sein, das Du in der laufenden Sitzung startest.

ssh-add hat auch ein X-Interface. Dazu einfach die Eingabe aus /dev/null 
umleiten: 

        ssh-add < /dev/null

Wenn eh kein Terminal mit SSH-Add asoziiert ist, kommt der X-Dialog auch
ohne die Umleitung.

> Bis jetzt habe ich versucht bei SSH den Befehl einfach beim Aufruf hinten dran
> zu h�ngen. Ist auch so vorgesehen, nur leider verlangt er dabei immer die
> interaktive Eingabe des Passwortes. Ich komme einfach nicht weiter.

So kommst Du garantiert weiter. Ich hole per SSH-Tunneling meine Mails per
POP3 ab, ohne irgendein Kennwort einzugeben, und meine Terminals auf den
ganzen Servern, die drau�en stehen, poppen alle nach dem Anklicken ohne
Kennwortabfrage auf. Der ssh-agent ist die beste Erfindung seit dem
geschnittenen Brot.

�ber diesen Befehl starte ich aus dem Enlightenment-Men� eine Shell auf dem 
PUG-Server, und mu� kein Kennwort mehr eingeben:

        xterm -title tux.pug.org -e ssh tux.pug.org

Es lohnt sich �brigens, sich dann auch gleich noch mit "xscreensaver"
auseinanderzusetzen, damit der Bildschirm automatisch gesperrt wird. ;-)

-martin

-- 
I haven't lost my mind; I'm sure it's backed up on tape somewhere!
---------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org

Antwort per Email an