目前我有一台计算机正确设置为SSH到我的EC2 instane,但我也试图连接另一台笔记本电脑。当我去AWS控制台下载另一个密钥对并在终端到SSH中使用它时,我收到此错误:权限被拒绝(公钥)。
我已经尝试过执行命令chmod 400 /path/sshkey.pem
,但我仍然遇到公钥错误。有谁知道这是为什么?
非常感谢!
P.S。我正在执行SSH到我的ec2实例的命令是:ssh -i /path/sshkey.pem ec2-user@ip.compute.amazonaws.com
答案 0 :(得分:6)
我对这里的情况并不完全清楚,但我认为你说你按照这个顺序做了事情:
如果这就是你所描述的,那么问题是密钥对#2的公钥从未安装在EC2实例上。您需要客户端上的私钥以及您要连接的服务器上的匹配公钥。
实例已存在后,在AWS中创建新密钥对将不会更新现有实例上的密钥。您必须登录它(使用密钥对#1),并将新公钥放在适当的位置。
我有一段时间没有这样做,但根据this page,您要编辑~ec2-user/.ssh/authorized_keys
(文本文件)并附加密钥对中的公钥(在一种文本格式)到文件的末尾。您可能必须重新启动命令sshd
应该执行的sudo /sbin/service sshd restart
守护程序。但请先尝试使用新密钥登录;如果您在编辑文件时出错,可以将自己锁定。 (创建新帐户并更新其.ssh/authorized_keys
以避免错误地锁定ec2用户帐户更安全。)