系统:Linux
服务器:XAMPP
目标:
ssh 连接到服务器(稍后:在此服务器上做一些事情,不是这个问题的一部分)
测试代码:
<?php
set_include_path(get_include_path().PATH_SEPARATOR.'/home/myusername');
include('Net/SSH2.php');
$ssh = new Net_SSH2('123.45.6.78');
if (!$ssh->login('user', 'password')) {
exit('Login Failed');
}else{
echo "connected".'<br>';
echo $ssh->exec('whoami').'<br>';
echo $ssh->exec('hostname')).'<br>';
}
?>
输出:
已连接
(M4300-28G-PoE+) >
(M4300-28G-PoE+) >
问题:
我没有收到任何错误(无论是在网站输出(见上文)还是/opt/lampp/logs/error_logs 中),所以:
问题:
为什么我没有得到任何输出(用户、主机名)?
是否有其他/更好的方法来检查我是否正确连接?
最佳答案
看起来您正在获得输出。 (M4300-28G-PoE+) >
是您获得的输出,您正在为您尝试运行的两个命令获得它。
M4300-28G-PoE+ 是 NetGear switch .交换机因没有完整的 SSH 实现而臭名昭著。
我的猜测:如果你想运行命令,你必须使用 phpseclib 的 interactive commands :
echo $ssh->read('username@username:~$');
$ssh->write("ls -la\n"); // note the "\n"
echo $ssh->read('username@username:~$');
关于php ssh 连接 phpseclib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55594316/