从另一个远程服务器 SSH 到 AWS ec2 实例?

Posted

技术标签:

【中文标题】从另一个远程服务器 SSH 到 AWS ec2 实例?【英文标题】:SSH into AWS ec2 instance from another remote server? 【发布时间】:2017-12-27 21:28:23 【问题描述】:

我正在尝试从 Digital Ocean 上的远程服务器上的用户通过 ssh 连接到 AWS ec2 实例。

我将私钥上传到 Digital Ocean 上用户的 .ssh 文件夹中,在 .ssh 目录中创建了一个配置文件以指向身份文件(包含私钥的.pem 文件)然后生成一个公共通过ssh-keygen -y 获取密钥并将其添加到 ec2 实例上用户的“.ssh/authorized_keys”文件中。

我的本​​地机器以这种方式连接到 ec2 实例没有问题,并且我认为我可以以类似的方式在远程 Digital Ocean 实例上设置用户,但是当我尝试连接时出现Permission denied (publickey). 错误。

详细错误输出:

debug1: Found key in /home/temp_user/.ssh/known_hosts:2
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: .ssh/digital-ocean.pem
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.

temp_user 是 Digital Ocean 服务器上的新用户。 digital-ocean.pem 是在 AWS 控制台中创建的私钥,从中生成公钥并将其存储在 .ssh/authorized_keys 中,供 AWS 实例上的新用户使用。

为了测试,我暂时上传了我在本地使用的私钥

ssh -i .ssh/local.pem &lt;user&gt;@&lt;instance id&gt; 有效。

我觉得这可能与 aws 实例上新创建的用户有关。

如何解决或解决此问题?

【问题讨论】:

当您可以从本地计算机连接到另一个公钥时,为什么还要生成另一个公钥?您所需要的只是从任何地方连接的私钥。 请从详细和命令中粘贴错误.. @helloV Digital Ocean 上的用户是临时用户,我不想将本地 .pem 文件上传到服务器。 @DonPeat 临时用户 authorized_keys 文件权限为 600 吗?如果不是,请更改它并尝试(或 644,只要没有为组和世界写入)。 .ssh 目录应该有 755 个权限并且归用户所有。 authorized_keys 文件应该有 644 个权限并且归用户所有。 没有。 .ssh 目录需要执行权限,否则无法访问authorized_keys 文件。将.ssh 更改为 755。 【参考方案1】:

.ssh 目录应具有 755 权限并归用户所有。 authorized_keys 文件应具有 644 权限并归用户所有。

【讨论】:

以上是关于从另一个远程服务器 SSH 到 AWS ec2 实例?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 SSH 隧道通过 AWS 堡垒/跳转服务器从笔记本电脑访问 phpMyAdmin 到使用 .ssh/config 的 EC2 实例

首次使用AWS服务器EC2

对 AWS 服务器的 SSH 访问仅适用于 ec2-user

AWS EC2 ssh连接在10秒后关闭

AWS EC2 通过Linux终端:使用ssh连接到Linux实例

在将ssh尝试到实例时关闭AWS EC2连接