我使用PHPSecLib与此代码:
ssh = new Net_SSH2('my-ec2-dns');
$key = new Crypt_RSA();
$key->loadKey(file_get_contents('my-ec2-private-key'));
只有我可以使用电脑和服务器。
我得到一个权限拒绝file_get_contents,因为ec2实例需要400权限的私钥。
我如何解决这个问题,以便我可以SSH到我的服务器在PHP环境?
实现这一目标的唯一方法就是以某种方式绕过安全措施。
可能的解决方案:
- 将您的私钥复制到具有更宽松权限的另一个文件(640)。
- 在组中添加运行web服务器的用户,以便它可以访问文件
- 确保web服务器没有以任何方式chroot,所以它可以到达你的文件或添加一个符号链接(需要+FollowSymlink)