使用 powershell 对 AWS EC2 的 ssh 登录失败进行故障排除

Rav*_*h13 11 ssh shell powershell amazon-ec2 amazon-web-services

简短的问题描述:我在 Redhat Linux 和 Ubuntu 操作系统上创建了两个新的 AWS EC2 服务器实例。我试图通过 Putty 通过 SSH 登录它,但出现错误(详细错误有问题)。这只是一个简短的描述。

详细问题描述:我在创建Ubuntu 20 OS版本的免费层Amazon EC2(弹性计算云)服务器后生成了一个新的.pem文件。然后我PuttyGen在我的 Windows-10 操作系统电脑中使用了软件当尝试通过腻子登录时,它给了我一个错误,如下面的错误描述所示,因此我无法登录到 aws 机器,我进一步调查了在这个自我回答的问题中详细提到了问题和故障排除步骤的所有细节(欢迎其他建议/解决方案)。

错误描述:

"Server refused our key" 在终端 AND "NO supported authentication method available(server sent:public ke;gssapi-with-mic)"

在此处输入图片说明

Rav*_*h13 12

初步故障排除:

  1. 我最初的想法是它可以控制 .pem 文件或私钥中的 M 个字符。但是当检查键看起来很好。
  2. 然后我认为这可能是入站规则问题,我们不允许对 aws 服务器执行 ssh,但是当我检查服务器配置时我错了,我发现它很好,并且 ssh 有 22 端口。
  3. 然后我想 .pem 文件是否具有适当的权限,我检查过,是的,它对所有用户(有权访问它的人)都具有读取权限。

显然以上都没有奏效;足够的谈话所以现在现在来实际解决方案:)

带有完整步骤的实际修复:

  • 由于我在我的 PC 上使用 Windows 10 操作系统,所以我想使用任何其他介质来做ssh,因此我尝试了SSHpowershell,如下所示。
PS E:\test> ssh -i "aws_key_generator.pem" ubuntu@singh_server_test.compute.amazonaws.com
Run Code Online (Sandbox Code Playgroud)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @
WARNING: UNPROTECTED PRIVATE KEY FILE! @ 
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'aws_key_generator.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "aws_key_generator.pem": bad permission
Run Code Online (Sandbox Code Playgroud)
  • 以上给了我很大的信心,并为我指明了下一步该做什么。我立即再次检查了文件的权限(如上面的初始故障排除专栏中所述,已读取并验证)。然后我看到其他组存在于权限中,然后我通过转到"Right click on .pem file"-->"Properties"-->"Security"-->"Advance"并从那里禁用“继承”来删除继承。
  • 然后我只保留“admin”组对它的只读权限并保存文件的属性。
  • 我再次尝试从 PUTTY SSH(使用从问题陈述中提到的 PuttyGen 生成的私钥文件)但它失败了。
  • 但是当我尝试使用 powershell 命令(使用 .pem 文件)时,它现在已经成功登录了。
  • 然后我以 root 身份进入 /home/ubuntu/.ssh 目录并检查了 authorized_keys 文件,但看不到其中的 PUBLIC 密钥。
  • 所以我将生成的公钥添加PuttyGen“authorized_keys”并保存。
  • 我再次尝试通过将私钥传递给 Putty 登录到服务器,现在我可以成功登录 BINGO :)

我已经解决了这项工作的问题,并想在这里与所有人分享;也欢迎其他解决方案,欢呼和快乐学习。

  • 在 Unix 系统上,`.pem` 文件也不应该对组和其他人可读/可写 (2认同)
  • @anubhava,是的,先生,这是正确的,谢谢您在这里提及,干杯。 (2认同)