2016-08-09 18 views
1

mir den folgenden Code aus der phpseclib Bibliothek auf Remote-Server anmelden (Remote-Server verwendet: SFTP - SSH File Transfer Protocol):Dowload Dateien von Remote-Server mit phpseclib

<?php 
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib'); 
include('phpseclib/Net/SFTP.php'); 

$sftp = new Net_SFTP('200.160.163.10'); 
if (!$sftp->login('username', 'password')) { 
    exit('Login Failed'); 
} 
?> 

Nach dem obigen Code ausgeführt werden Ich bekomme die folgende Nachricht:

Notice: Error reading channel data in /home/comdinhe/public_html/phpseclib/Net/SSH2.php on line 3480 

Notice: Connection closed prematurely in /home/comdinhe/public_html/phpseclib/Net/SSH2.php on line 3500 

Login Failed 

Weiß jemand, was passieren könnte?

Log: http://pastebin.com/j9M7tZAM

+0

Können Sie die SSH-Protokolle veröffentlichen? Sie können sie erhalten, indem Sie 'define ('NET_SSH2_LOGGING', 2);' am Anfang und dann 'echo $ ssh-> getLog(); 'vor dem' exit' ausführen. – neubert

+1

Hier ist das Protokoll: http://pastebin.com/j9M7tZAM – Hidan

+0

Diese Verbindung dauert eine Weile. Es dauert den Server 20s, um das "NET_SSH2_MSG_USERAUTH_SUCCESS" -Paket zu erhalten, und dann werden 10s für das Paket "NET_SSH2_MSG_CHANNEL_REQUEST" gesendet und weitere 20s für das Paket "NET_SSH2_MSG_CHANNEL_DATA" gesendet. idk, warum es so lange dauert, aber da es versucht $ 'sftp-> setTimeout (999999)' oder so etwas zu tun. – neubert

Antwort

1

Ich denke, die bekommen Methode für Net_SFTP ist.

<?php 
set_include_path(get_include_path() . PATH_SEPARATOR . 'phpseclib'); 
include('phpseclib/Net/SFTP.php'); 

$sftp = new Net_SFTP('200.160.585.10'); 
if (!$sftp->login('username', 'password')) { 
    exit('Login Failed'); 
} 

echo $sftp->pwd() . "\r\n"; 
$sftp->get(
    '/sianbima/cbfundo/cbfundo_00000_20160808_171429.txt', 
    '/home/comdinhe/public_html/testeArquivo.txt' 
); 
?> 

Oder Sie können versuchen, führen Sie den Rsync-Befehl in der SSH.

$ssh->exec('rsync -avz /sianbima/cbfundo/cbfundo_00000_20160808_171429.txt /home/comdinhe/public_html'); 
+0

Wenn ich versuche, 'Net_SFTP' zu verwenden, kann ich mich nicht anmelden. Ich erhalte die folgende Meldung: 'Hinweis: Fehler beim Lesen der Kanaldaten in /home/comminhe/public_html/phpseclib/Net/SSH2.php in Zeile 3480'. Wenn ich versuche, $ ssh-> exec zu verwenden, passiert nichts. – Hidan

+1

Jetzt sehen, was in echo $ sftp-> isAuthenticated() zurückkehrt. $ sftp-> isConnected(). "\ r \ n"; ' –

Verwandte Themen