3

尝试使用 .pem 文件、PHP 和 phpseclib 连接到 Amazon EC2 实例。

我已经尝试过这篇文章中提到的内容: ssh access to ec2 from php

但是,我不断收到“错误 111。连接被拒绝...”

当我使用 ssh 和相同的 .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');
}
4

2 回答 2

4

我刚刚测试了提供的示例代码,它适用于我的 Amazon EC2 Ubuntu 实例。

您必须检查建议的明显内容:

  • 主机名
  • 用户名
  • PEM 文件路径

他们是正确的吗?您确定您使用的与从您自己的机器连接时使用的相同吗?

如果它们相同,您是否在同一台机器上测试代码?如果没有,您运行代码的主机是否为出站连接打开了端口 22?

于 2012-05-21T08:35:37.970 回答
0

显而易见的检查,端口是否开放并允许您的用户使用?

试着做:

wget ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com:22

从给您带来麻烦的机器上,看看您是否可以打开插座。

我猜您可能需要使用 shell_exec() 通过 PHP 运行该命令,以确保它被相同的用户/安全设置调用。

于 2012-05-21T02:46:36.290 回答