【发布时间】: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。
标签: amazon-ec2 ssh ssh-keys