允许用户使用密钥对通过SSH连接到EC2 Linux实例

时间:2015-01-16 05:42:48

标签: linux amazon-web-services ssh amazon-ec2 putty

我创建了一个新的EC2 Amazon Linux实例。我想允许开发人员通过SSH连接到EC2实例。为了测试这个,我正在从我的Windows计算机上尝试它。我已按照下面链接中的说明操作,但我无法使用我正在生成的密钥对来连接SSH(Putty)。

我按照reference的说明进行操作 和here

使用FireSSH和AWS生成的pem以ec2-user身份登录EC2后,我使用SSH运行以下命令来创建新用户,.ssh目录和权限。

[ec2-user ~]$ sudo adduser newuser

[ec2-user ~]$ sudo su - newuser

[newuser ~]$ mkdir .ssh

[newuser ~]$ touch .ssh/authorized_keys

[newuser ~]$ chmod 600 .ssh/authorized_keys

[newuser ~]$ vim .ssh/authorized_keys

然后,我使用authorized_keys将公钥粘贴到vim。我将在下一步解释我获取公钥的位置。

ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQClKsfkNkuS .... 

要创建我在上一步中粘贴的公钥,我按照此参考中的步骤开始"Generating an SSH Key"

我从PuttyKeyGen复制了公钥,该公钥显示在标有“粘贴到OpenSSH authorized_keys的公钥”的框中。然后我将其粘贴到.ssh/authorized_keys目录中EC2实例上的newuser文件中。

我退出了EC2上的SSH客户端。然后我尝试使用我在Windows机器上新创建的私钥使用Putty登录。我使用newuser登录名。我在Putty中遇到此错误:server refused our key。还有一个显示Disconnected: No supported authentication methods available {server sent: publickey)

的对话框

我在这些步骤中做错了什么?

2 个答案:

答案 0 :(得分:1)

我做了两件不同的事情,现在有效。它可能是使其工作的位数。

我使用PuttyGen生成了一个新密钥对,但我使用SSH-2 RSA位指定了1024,而不是PuttyGen放入的默认值2048

当我使用SSH登录EC2时,我使用nano而不是vim粘贴公钥。

答案 1 :(得分:0)

始终使用ec2-import-keypair功能来验证EC2实例是否良好。它是导入工作,然后它是好的,否则,重新生成一个合规密钥对。如果您只是复制不符合规定的密钥对,则会遇到麻烦。

以下是import key pair

的文件
  
      
  • OpenSSH公钥格式(〜/ .ssh / authorized_keys中的格式)
  •   
  • Base64编码的DER格式
  • 中指定的SSH公钥文件格式   
  • 不支持RFC4716 DSA密钥 。确保您的密钥生成器   设置为创建RSA密钥。

  •   
  • 支持的长度: 1024,2048和4096

  •