Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Remote auf Server einloggen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Remote auf Server einloggen


 
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. ;)

 
Abraxax
24-10-2003, 11:44 
 
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)

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:57 Uhr.