Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssh 为AWS EC2实例创建私钥_Ssh_Amazon Web Services_Amazon Ec2 - Fatal编程技术网

Ssh 为AWS EC2实例创建私钥

Ssh 为AWS EC2实例创建私钥,ssh,amazon-web-services,amazon-ec2,Ssh,Amazon Web Services,Amazon Ec2,目前,我有一台计算机已正确设置为SSH到我的EC2实例中,但我正在尝试连接另一台笔记本电脑。当我去AWS控制台下载另一个密钥对并在Terminal to SSH中使用它时,我得到了这个错误:权限被拒绝(publickey) 我已经尝试执行命令chmod 400/path/sshkey.pem,但仍然出现公钥错误。有人知道这是为什么吗 非常感谢 p、 我正在执行SSH到我的ec2实例的命令是:SSH-I/path/sshkey.pem ec2-user@ip.compute.amazonaws.c

目前,我有一台计算机已正确设置为SSH到我的EC2实例中,但我正在尝试连接另一台笔记本电脑。当我去AWS控制台下载另一个密钥对并在Terminal to SSH中使用它时,我得到了这个错误:权限被拒绝(publickey)

我已经尝试执行命令
chmod 400/path/sshkey.pem
,但仍然出现公钥错误。有人知道这是为什么吗

非常感谢


p、 我正在执行SSH到我的ec2实例的命令是:
SSH-I/path/sshkey.pem ec2-user@ip.compute.amazonaws.com

我不太清楚这里的情况,但我想你是说你是按以下顺序做事的:

  • 使用密钥对#1创建EC2实例
  • 创建新的密钥对(#2)
  • 将密钥对#2中的私钥放在新笔记本电脑上
  • 尝试登录到该实例
  • 如果这就是您所描述的,那么问题在于keypair#2的公钥从未安装在EC2实例上。您需要客户端上的私钥,以及连接到的服务器上的匹配公钥

    一旦实例已经存在,在AWS中创建新的密钥对将不会更新现有实例上的密钥。您必须登录到它(使用密钥对#1),并将新公钥放在适当的位置


    我已经有一段时间没有这样做了,但根据我的说法,您需要编辑
    ~ec2 user/.ssh/authorized_keys
    (一个文本文件),并将密钥对中的公钥(也是文本格式)附加到文件的末尾。您可能需要重新启动
    sshd
    守护进程,命令
    sudo/sbin/service sshd restart
    应该这样做。但是首先尝试使用新密钥登录;如果编辑文件时出错,可能会将自己锁定在外。(创建一个新帐户并更新其
    .ssh/authorized_keys
    会更安全,以避免错误地锁定ec2用户帐户。)

    此外,我正在使用mac将其升级到linux ec2。这正是问题所在,但我仍然不太了解您的解决方案。当我使用旧笔记本电脑上的密钥对1登录我的实例时,你能解释一下我在那里做什么吗?非常感谢!好吧,为了安全起见,我先创建一个新帐户,然后将密钥与该帐户关联。如果我可以用它登录,我会为ec2用户更新一个。今天晚些时候有机会的时候,我会更详细地编辑我的答案。