尝试使用phpseclib替换我服务器上的SSH2 dll,这样我就可以转到php 5.6及更高版本了。我使用SSH登录Sonicwall防火墙并导出配置文件。
通过SSH登录并不像远程登录到Linux机箱。例如,Putty在您第一次连接时会询问用户名,但是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 :(得分:0)
我找到了答案,我在用户名和密码后完全错过了换行符。