php - ssh 从 php 访问 ec2

标签 php linux shell ssh amazon-ec2

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

当我从终端运行此 php 脚本时,它执行良好并将尾部条目写入文件。当我从浏览器运行时,apache 错误日志中出现了这个错误

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

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

PHP代码:-

<?php

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

最佳答案

**终于找到了使用 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');

关于php - ssh 从 php 访问 ec2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8658933/

相关文章:

php - 获取帖子列表的最新 3 条评论

php - 针对大量服务于小文件的连接优化 Lighttpd

linux - 合并 awk 脚本的问题

linux - 是否可以在单独的虚拟地址空间中运行每个线程?

php - HostGator 上的 Linux 服务器说找不到类 'HTTPRequest'

linux - 使用命名管道创建 'loop'

apache - a2ensite 'Site: ___ does not exist' 错误,即使使用 .conf 文件

linux - 如何按第三列中的数字对数据进行排序?

php - MySQL - 在插入中选择

PHP foreach 进行查询