从另一个远程服务器 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 <user>@<instance id>
有效。
我觉得这可能与 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 服务器的 SSH 访问仅适用于 ec2-user