jamaica-man
23-10-2003, 21:45
Hallo an alle,
ich habe mal eine für mich äusserst komplizierte Frage.
Ist es mit PHP möglich eine SSH-Verbindung zu einem fremden Server aufzubauen, und dann dort irgendwie tätig zu werden?
irgendwie mit
$handle=fopen('http://server.de:22,x+);
exec('rm -r ./');
auf dem entfernten Rechner ausführen? Ich will mit PHP also auf dem anderen Rechner system-befehle ausführen.
Geht das? Anders als ich vorgeschlagen habe?
mfg Martin
Uzimaster
23-10-2003, 23:11
Dafür sei dir die Funktion fsockopen (http://de3.php.net/manual/de/function.fsockopen.php) ans Herz gelegt. Mit fopen wirst du da nicht weit kommen. ;)
und ob es mit fsockopen() klappt sei auch noch dahingestellt. ;)
schliesslich will er einen shell-zugriff haben, wenn ich ihn recht verstanden habe.
jamaica-man
06-11-2003, 18:32
Grüsst euch zusammen,
ok, nachdem ich das projekt jetzt ne weile mangels lust und druck :-] habe liegen lasse, würd ichs jetzt doch gerne hinbekommen.
Also, erstmal der aktuelle Projektstand:
Der Code von PHP.NET auf SSH gemünzt:
//Verbindung zum mailserver herstellen
$server['ip']='10.90.1.123'; //Ip des angesprochenen Server
$server['port']='22'; //Telnet 23, SSH 22
$server['timeout']='5'; //Timeout des Servers
$connection = fsockopen($server['ip'],$server['port'], $errno, $errstr, $server['timeout']); //Verbindung herstellen
if(!$connection)
{
echo "Konnte Verbindung nicht herstellen\n";
exit();
}
else
{
echo "Verbindung hergestellt\n<BR>";
fputs ($connection, "root\r\n");
fputs ($connection, "password\r\n");
fputs ($connection, "tutu\r\n");
fputs ($connection, "ls -l\r\n");
while (!feof($connection))
{
echo fgets($connection,128)."<BR>\n";
}
}
print $errno.'<br>';
print $errstr.'<br>';
So, dann die Ausgabe der Seite nach dem Aufruf:
Verbindung hergestellt
SSH-2.0-OpenSSH_3.4p1 Debian 1:3.4p1-1
0
Und jetzt noch die Fehleranalyse mittels auth.log
Nov 6 18:22:25 mail2 sshd[27717]: Bad protocol version identification 'root' from 10.90.10.1
Ich finde das Beispiel von PHP.net übrigens sehr schlecht, es wird nicht erklärt warum er hier und da tutu oder solche Wörter benutzt, ob das Sinn ergibt oder ob ich dort auch essenmarke einsetzen kann.
Hier der Link zum Bsp.:
LINK (http://de2.php.net/manual/en/function.fsockopen.php)