使用SSH2通过PHP客户端连接到AWS

时间:2015-11-22 17:51:46

标签: php amazon-web-services public-key pem

我正在尝试使用PHP客户端连接到AWS上的mysql数据库。 连接有两个阶段: 1 - 使用公钥/私钥auth连接到SSH端口22 2 - 在端口3306上连接到mysql服务器

我遇到了第一阶段的问题。我有pem文件,我有以下代码:

<?php
include('SSH2.php');
include('RSA.php');

$key = new Crypt_RSA();
$key->loadKey(file_get_contents('path to pem file'));

$ssh = new Net_SSH2('server IP');
if (!$ssh->login('root', $key)) {
    exit('Login Failed');
}

echo $ssh->exec('ls -la');
?>

我做错了什么?

任何人都有end2end连接的例子吗?

1 个答案:

答案 0 :(得分:0)

我测试了你的脚本,它似乎适合我。

请核实一些事情,看看为什么ssh连接不起作用,

  1. 检查您是否使用了正确的ssh私钥[pem file],并且该文件的权限是readonly [chown 0400 pemfile]
  2. 检查ec2服务器的安全组是否允许端口22访问运行PHP的IP地址。
  3. 检查您使用的是正确的服务器IP,用户名。一般来说,大多数EC2服务器AMI都是在禁用远程root登录的情况下构建的,你需要使用正确的用户名,就像在Amazon AMI上你需要使用ec2-user而在ubuntu amiit上是ubuntu
  4. 另外,请查看https://blog.rjmetrics.com/2009/01/06/php-mysql-and-ssh-tunneling-port-forwarding/,其中深入介绍了您的成就