2015-06-22 88 views
0

試圖使用phpseclib替換我的服務器上的SSH2 DLL,以便我可以移動到PHP 5.6及更高版本。我使用SSH登錄到Sonicwall防火牆並導出配置文件。使用phpseclib連接到Sonicwall設備

通過SSH登錄並不像遠程訪問Linux的一個盒子。例如,膩子在第一次連接時要求提供用戶名,但sonicwall會忽略該用戶名,顯示其歡迎橫幅,然後詢問用戶名和密碼。

我能目前連接使用下面的代碼:

$connection = ssh2_connect($host); 
ssh2_auth_none($connection,$user); 
$shell = ssh2_shell($connection,'vt102',null,80,40,SSH2_TERM_UNIT_CHARS); 
fwrite($shell, $user."\n"); 
fwrite($shell, $pass."\n"); 
// etc 

我試圖使用從http://phpseclib.sourceforge.net/ssh/auth.html#noauth的例子與phpseclib如下:

$ssh = new \Net_SSH2('172.17.1.99'); 
$ssh->login("admin"); 
$ssh->read('User:'); 
$ssh->write('admin'); 
$ssh->read('Password:'); 
$ssh->write('password'); 

但有些事情是越來越掛了,我也得到直到我的執行超時命中爲止。

回答

0

我找到了答案,我完全錯過了用戶名和密碼後的換行符。