使用 PHP 进行 SSH 连接
Posted
技术标签:
【中文标题】使用 PHP 进行 SSH 连接【英文标题】:SSH connect using PHP 【发布时间】:2016-03-28 14:42:24 【问题描述】:我正在尝试使用以下代码通过SSH
连接到服务器:
include('Net/SSH2.php');
$ssh = new Net_SSH2('mydomain.com');
if (!$ssh->login('xxxx', 'xxxx'))
exit('Login Failed');
else
echo "connected";
echo $ssh->exec('pwd');
上面写着connected
,但没有显示代码输出
echo $ssh->exec('pwd');
为什么?
记录消息
-> NET_SSH2_MSG_CHANNEL_REQUEST (since last: 0.0002, network: 0s)
00000000 00:00:00:00:00:00:00:04:65:78:65:63:01:00:00:00 ........exec....
00000010 03:64:69:72 .dir
<- NET_SSH2_MSG_CHANNEL_FAILURE (since last: 0.0611, network: 0.0001s)
00000000 00:00:00:00 ....
【问题讨论】:
启用日志记录,并检查日志,phpseclib.sourceforge.net/ssh/examples.html#oneoff,logging @Nikhil 这是一个linux操作系统 酷,看看这个***.com/a/18925697/5043552 然后这个phpseclib.sourceforge.net/ssh/examples.html#interactive。不幸的是,它没有回答 为什么 问题 您可以在执行 PHP 的同一台机器上执行ssh xxxx@mydomain.com pwd
吗?
即使您运行 read() 而不是 exec(),是否也会出现错误?比如 echo $ssh->read('ls');
【参考方案1】:
您可以在 php.ini 中使用 'ssh2_connect' 函数。 使用 'ssh2_exec' 并将结果存储在 $var 中。
最后你可以使用'stream_get_contents($var);'用于返回结果代码命令 ssh
不要忘记 'sleep(1)' 功能 php 以防止启动 ssh 命令后出现错误。
'ssh2_exec' 是一个资源 php。
ssh2_connect ssh2_auth_password ssh2_exec sleep php stream_get_contents【讨论】:
以上是关于使用 PHP 进行 SSH 连接的主要内容,如果未能解决你的问题,请参考以下文章