PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Remote-SSH über PHP



thaindy
13.01.06, 18:37
Hallo,


ich hab nich genau gewusst wo ichs reinschreiben sollte und da dacht ich mir, hier ists wohl das beste. Ich hab schon im Forum und auch bei Google gesucht, allerdings nicht das passende gefunden. Passt auf:

Ich bin dabei mir mit PHP ein Serveradminscript zu basteln.. Also für Gameserver, Webspace, Teamspeak usw. Damit soll man mehrere Server administrieren können. Also z.B.:

Server 1: Webserver mit Interfacce
Server 2: Gameserver
Server 3: Webserver

Gibt es irgendeine Möglichkeit per PHP von Server 1 via SSH auf einen der anderen Server zu connecten und da Befehle auszuführen?
Ich hätte da an fsockopen gedacht, weiß aber leider nicht genau wie das funktionieren soll, da ich mich mit dem SSH-Protokoll jetz auch nich sooooo auskenn.

Vielleicht kann mir ja jemand n Beispiel oder so machen, wär echt nett :)


MfG IndY

spööl
13.01.06, 18:44
Theoretisch ist das möglich, na klar. Aber ich kenne kein Skript dafür.
Vlt. willst du aber mal hier reinschauen http://mgeisler.net/php-shell/

thaindy
13.01.06, 18:47
Ne das bringt mir nix ^^
Das Script soll kommerziell vertrieben werden, daher wärs besser wenn keine anderen Scripts mit drinhängen würden :)

Roger Wilco
13.01.06, 19:48
http://pecl.php.net/package/ssh2

thaindy
13.01.06, 19:52
Geht leider auch nich, da das unser Server nicht unterstützt... Und weiß nich wie ich das installiert kriegen soll :/
Bin am Verzweifeln hab schon überall im inet gesucht...

zyrusthc
13.01.06, 19:52
Hallo

Oder du nimmst einfach mein fertiges WebInterface , was du beliebig anpassen und erweitern kannst. Es steht aber unter der GPL.
http://www.linuxforen.de/forums/showthread.php?t=135735

Ansonsten :
$output = shell_exec("/pfad/script -parameter");
echo $output;

gruss Oli

thaindy
13.01.06, 19:55
Hi,

nett von dir aber wie gesagt.. Ich mach das für ne Firma und das soll später mit Servern verkauft werden von daher :/
@Oli: Geht doch auch nich.. shell_exec is lokal.. ich muss ja aber die Befehle auf einem andern Server ausführen ;)

thaindy
14.01.06, 09:38
Sry für den doppelpost, aber es is wirlich wichtig...
Hat niemand eine andere Idee? :)

phoenix22
14.01.06, 11:07
Also dein Problem wird sein, dass HTTP stateless ist. Soll heißen, du kannst eine interaktive shell nur simulieren. Im Ergebnis solltest du über eine Eingabemaske Befehle entgegennehmen und dann per shell_exec("ssh foo@bar.org $command") ausführen. Die Authentifizierung muss dann allerdings mittels authorized_keys erfolgen.

EDIT: Denk daran, dass PHP Skripts nur eine bestimmte Zeit lang laufen können (abhängig von der php.ini). Zeitintensive Befehle solltest du also mittels "command &" von der shell ablösen.