Dem SSH-Befehl das Passwort mitgeben

GalaxyWarrior

Erfahrenes Mitglied
Hallo,
ist es möglich dem Befehl SSH direkt das Passwort des Remote Servers mitzuteilen? Ich Versuche den Status eines Lancom Routers über SSH abzufragen. In der Shell geht das ja, da kann ich einfach das Passwort eingeben. Wenn ich den Befehl aber von einer Website aus über PHP ausführen lasse, müsste die Verbindung ohne Passworteingabe funktionieren. Ich habe im Internet das Programm Keychain gefunden, aber schaffe es nicht eine Verbindung ohne Passwortabfrage herzustellen. Wobei soweit ich das verstanden habe müsste ich ja die Datei mit dem Public Key im /root/.ssh verzeichniss auf dem Zielhost ablegen, aber ich weiß nicht wo das bei dem Lancom Router sein soll, da man in der Shell nur den Status auslesen kann, aber nicht Tiefer in das System kommt. Ich hoffe ich habe meine Anliegen verständlich erklärt ^^

Gruß GalaxyWarrior
 
Ich hab mir grad mal kurz die Man-Page zu SSH (die sind manchmal richtig informativ, einen Blick reinwerfen kann also nie schaden ;) ) angeschaut und dort nichts gefunden, dass es moeglich waere gleich ein Passwort mitzugeben. Dementsprechend denke ich, dass dies nicht moeglich sein wird. Waere auch nicht wirklich praktisch, da dieses ja ansonsten auch ueber die Bash-History im Klartext einsehbar waere.
 
So arbeitet Keychain ja auch. Es wird ein Schlüssel generiert der dann im .ssh Verzeichnis auf de, remote Server abgelegt werden muss. Da ich aber eine SSH Verbindung zu einem Router herstellen will, weiß ich nicht wie ich diese Datei dort ablegen soll, da ich über SSH erstmal nur auf 3 Verzeichnisse zugriff habe die Informationen über Auslastung, WLAN Status usw. Enthalten, was ich ja auslesen will.

@ Dennis Wronka
Ich dachte mehr so an einen Workaround dass man evtl. in einer Datei ein Passwort an eine user@ip binden kann, auf welches SSH dann zurückgreift.

Naja, wird dann wohl nicht gehen, aber trozdem danke

Gruß GalaxyWarrior
 
Hallo,
So arbeitet Keychain ja auch.

Sorry das mit dem Router hatte ich überlesen...

Naja, wird dann wohl nicht gehen, aber trozdem danke

Geht nicht gibts nicht :)
Zur Not, falls dein Vorhaben nicht allzu komplex ist, und du etwas Ahnung von C
Programmierung hast, kannst du dir auch einen SSH Client für deinen Router
mit Passwort selber schreiben.
Diesen Client könntest du dann mit deinem PHP Skipt ansprechen.
Dabei würde dir die libssh behilflich sein:

http://0xbadc0de.be/wiki/doku.php?id=libssh:libssh

Gruß,
RedWing
 
Hallo,

ich hab grad mal nachgeschaut, soviel musst du gar nicht programmieren können :)
Also in dem Paket ist eine Beispielclient mit dabei.
In sample.c musst du gelegentlich den Teil (Ab Zeile 409):
Code:
    if(auth!=SSH_AUTH_SUCCESS){
        password=getpass("Password : ");
        if(ssh_userauth_password(session,NULL,password) != SSH_AUTH_SUCCESS){
            fprintf(stderr,"Authentication failed: %s\n",ssh_get_error(session));
            ssh_disconnect(session);
            return -1;
        }
        memset(password,0,strlen(password));
    }

durch diesen ersetzen:

Code:
 if(auth!=SSH_AUTH_SUCCESS){
//        password=getpass("Password : ");
        if(ssh_userauth_password(session,NULL,"passwort_in_plaintext") != SSH_AUTH_SUCCESS){
            fprintf(stderr,"Authentication failed: %s\n",ssh_get_error(session));
            ssh_disconnect(session);
            return -1;
        }
  //      memset(password,0,strlen(password));
    }

Kompilieren und dann einfach mit:
Code:
./samplessh user@host

ausprobieren...

Das ganze kann man natürlich noch dynamischer gestalten in dem man das
Passwort dem Programm mit übergibt und dann anstatt es hart reinzukodieren,
argv der Funktion ssh_userauth_password mit übergibt...

Gruß,
RedWing
 
OK, danke, werde ich mal ausprobieren, hab von C leider weniger ahnung, Java und Delphi wären besser ^^ Aber is ja wirklich nicht viel zu verändern, danke.

Gruß GalaxyWarrior
 

Neue Beiträge

Zurück