是的,多年来有很多关于这个问题的帖子。他们的解决方案对我没有用。
在我设置 Elastic IP 和 Cloudfront 之前,我从我的 Mac 终端通过 SSH 连接到我的 ec2 实例没有遇到任何问题。一切顺利,实例的原始 IP 已被替换,它正在为我的域提供网页。
我以为我必须为新 IP 做的就是将 SSH 字符串中的公共 DNS 更改为新的。然后我得到了错误。如果我使用旧的,我会得到同样的错误。没有 DNS 问题,因为该站点已经运行了好几天。此外,在 Webstorm 中,我在部署首选项中对主机进行了更改,我可以通过 SFTP 进入实例,而不会出现与以前相同的 .pem 文件。
ssh -i "path/to/ubuntu.pem" [email protected]
@ 符号后的部分是我的 ec2 实例的副本。
那么问题来了,我迁移到 Cloudfront 和 Elastic IP 除了 IP 有什么变化?为什么这只会影响 SSH 而不会影响 SFTP?为什么常规的登录变成了一个难以解决的噩梦?
这不是一个优雅的解决方案,但我将我的 pem 密钥放入 home/ubuntu/.ssh/authorized_keys 并可以使用 Elastic IP 登录:
ssh -i "path/to/ubuntu.pem" [email protected]
用原来的字符串还是登录不上:
[email protected]
我想知道为什么以及如何。
可能是ssh命令错误导致的。并且可能是由于您正尝试从未找到 .pem 文件的其他文件夹访问 ssh
对我有用的:从 MacOS 到 AWS EC2 的 SSH:
我在 ~.ssh/config 中添加了一个条目,从 AWS 门户中的 EC2 实例详细信息中复制了
Public IPv4 address
和 Public IPv4 DNS
Host <Public IPv4 address>
Hostname <Public IPv4 DNS>
IdentityFile ~/.ssh/<keypair filename>.pem
IdentitiesOnly yes
然后我可以
ssh -i ~/.ssh/<keypair filename>.pem ec2-user@<Public IPv4 address>