ssh从php访问ec2

从本地ubuntu linux机器通过ssh连接ec2机器访问。

当我从terminal运行这个PHP脚本它执行得很好,并在文件中写入尾部的条目。 当我从浏览器运行得到这个错误在Apache错误日志

ssh:无法parsing主机名称proxy2:名称或服务未知

发现它由于Apache用户权限问题。 不pipe我的猜测是对还是错,我都不确定。 任何人都可以帮助我解决这个问题。

php代码: –

<?php $ss = 'ssh proxy2 '.'tail -n 3 /out/speed_log.txt.1'.' > proxy2temp1'; system($ss); ?> 

Solutions Collecting From Web of "ssh从php访问ec2"

**最后找到一个解决方案,使用phpseclib解决了我的问题。 我推荐phpseclib连接来自php uing .pem文件的亚马逊ec2机器来帮助其他人分享我的示例代码。

确保.pem文件需要读取权限**

示例代码:

 include('Net/SSH2.php'); include('Crypt/RSA.php'); $key = new Crypt_RSA(); $key->loadKey(file_get_contents('/pathtokey.pem')); $ssh = new Net_SSH2('ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com'); if (!$ssh->login('user', $key)) { exit('Login Failed'); } echo $ssh->exec('tail -n 3 /out/_log.txt.1');