我创建了一个新的EC2 Amazon Linux实例。我想允许开发人员通过SSH连接到EC2实例。为了测试这个,我正在从我的Windows计算机上尝试它。我已按照下面链接中的说明操作,但我无法使用我正在生成的密钥对来连接SSH(Putty)。
使用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)
我在这些步骤中做错了什么?
答案 0 :(得分:1)
我做了两件不同的事情,现在有效。它可能是使其工作的位数。
我使用PuttyGen生成了一个新密钥对,但我使用SSH-2 RSA
位指定了1024
,而不是PuttyGen放入的默认值2048
。
当我使用SSH登录EC2时,我使用nano而不是vim粘贴公钥。
答案 1 :(得分:0)
始终使用ec2-import-keypair功能来验证EC2实例是否良好。它是导入工作,然后它是好的,否则,重新生成一个合规密钥对。如果您只是复制不符合规定的密钥对,则会遇到麻烦。
的文件
- OpenSSH公钥格式(〜/ .ssh / authorized_keys中的格式)
- Base64编码的DER格式
中指定的SSH公钥文件格式不支持RFC4716 DSA密钥 。确保您的密钥生成器 设置为创建RSA密钥。
支持的长度: 1024,2048和4096 。