我使用以下 bash 脚本通过无密码 ssh 连接连接到远程私有(private)机器。然后我在那台机器上运行一组命令。
我正在尝试做完全相同的事情,但在使用 PHP 的网页上运行它。我不确定我是从哪里开始的
我确实在 php 中尝试了一些东西,但失败了,很遗憾我不确定如何在 php 中进行无密码的 ssh 连接?
ssh -t -o "StrictHostKeyChecking no" -i ~/.ssh/iduser_rsa iduser@10.xxx.22.133 '
echo "hostname" > /tmp/iamhere.txt
cd /opt/im/olywc/bin/
echo "Checking server status:"
sudo ./status.sh
echo ""
ps -ef |grep -i main |grep -v grep
echo ""
echo "End of restart function"
exit
'
将以上内容转换为 PHP 代码
include('Net/SSH2.php');
$ssh = new Net_SSH2('10.xxx.22.133');
if (!$ssh->login('', '')) {
exit('Login Failed');
}
function printOutput($str)
{
echo $str;
}
$ssh->exec('
echo "I am here" > /tmp/iamhere.txt
cd /opt/im/olywc/bin/
echo "Checking server status:"
sudo ./status.sh
echo ""
ps -ef |grep -i main |grep -v grep
echo ""
echo "End of restart function"
exit
'
, 'printOutput');
?>
请您参考如下方法:
phpseclib ( http://phpseclib.sourceforge.net/ ) 是一个维护良好的库。我有使用这个库生成 key 的一点经验,但它允许您使用任何常用协议(protocol)创建简单的 SSH 连接并通过 SSH 连接运行命令。
查看this section的文档。




