使用 phpseclib 连接到 Sonicwall 设备
Using phpseclib to connect to a Sonicwall device
尝试使用 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');
但是有些东西挂断了,在执行超时之前我什么也得不到。
我找到了答案,我完全错过了用户名和密码后的换行符。
尝试使用 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');
但是有些东西挂断了,在执行超时之前我什么也得不到。
我找到了答案,我完全错过了用户名和密码后的换行符。