我使用以下 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的文档。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!