我在 Windows 机器上下载了 pem 文件,并且能够使用 puttygen 生成的 ppk 文件(其中包含公钥和私钥)连接到我的实例。我将 pem 文件复制到 Linux 机器上并尝试,但 ssh 要求我输入密码。调试输出()如下:ssh -i pemfile.pem [email protected] -v
-v
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/w/jpgate.pem
debug1: read PEM private key done: type RSA
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
[email protected]'s password:
所以我想我需要一个公钥,对吧?如何在 Linux 上获取公钥?为什么每个教程都告诉我只需要?ssh -i key.pem [email protected]
答案1
您使用哪种 AMI / Linux 发行版?
也许不允许以身份登录root
。例如,对于 Amazon Linux AMI,您必须以身份登录ec2-user
(不确定破折号),而对于 Ubuntu AMI,则以用户身份登录ubuntu
。
答案2
我刚刚自己找到了解决方案:
我还没有生成 ssh 公钥(没有id_rsa
,id_rsa.pub
在~/.ssh/
),所以我生成了一个:
ssh-keygen -t rsa -C "[email protected]"
编辑:
如果用户名错误,调试打印结果将如下所示这问题。
答案3
很多 EC2 信息暗示用户名通常或总是ec2-user
。 事实并非如此。 它可以root
用于 CentOS、ubuntu
Ubuntu 等。 无论出于什么原因,用户名都没有记录在 AMI 中! 非常烦人。 您可能必须尝试不同的用户名。
如果 SSH 提示您输入密码,那证明提供的用户名是错误的。
答案4
我们刚刚遇到了同样的问题。罪魁祸首是 /home 目录没有用户的执行权限