之前一篇文章中介绍了如何一步一步创建一个AWS EC2实例,光说不练不是咱的性格,虽然实例挺耗银子的,不过舍不得孩子套不住狼,撸起袖子就是干!
(图源 :pixabay)
话说实例创建后,略等一小会就可以在EC2->Instances
中看到了,里边同时会显示一个Public IPv4 address
,我们就可以用这个地址登录啦。
要完成初始登录,大致需要三个要素:
- IP地址
- 一个允许了22端口的Security groups(安全策略)
- Key pair对应的私钥
失败的登录
目前这些要素我都具备了,于是乎使用Putty登录:
在这里输入IP以及默认端口,默认选择SSH
在这里选择对应的私钥;
点击Open登录,原本做过N多次类似操作,结果竟然登录失败?
提示的错误信息如下:
重新实例 & Key Pair
经过我N多次尝试,并且试了我本地目录中的好几组.PPK私钥,尝试了各种用户名,都没法正确登录。
这让我怀疑,可能是我本地保存的私钥都不对(比如说创建过多个,但是最新一个被我删除了?)。因为除了怀疑这点,也没法怀疑其它了。
既然Key Pair不对,那么重新创建一组就好了,但是EC2实例是没法切换Key Pair,这意味着,我必须重建一组Key Pair,同时删除并重建EC2实例并关联新的Key Pair。
使用这个路径创建Key Pair:
EC2->Key pairs->Create key pair
创建Key Pair的界面如下:
我注意到,目前已经直接支持创建.ppk格式的私钥了,也就是说无需再使用puttygen.exe
进行私钥格式转换了,果然方便不少。
于是创建新的Key Pair,删除之前创建的EC2实例,重新创新新实例并关联新的Key Pair。
然后再去尝试登录,依旧失败,各种出错信息没有任何变化。也就是说,并不是我之前用错的Key Pair,哭。
新版本的Putty
那么问题出在哪里呢?
突然想起我在选择OS的时候,曾经看到Minimal Ubuntu 22.04 LTS - Jammy下的一条评论,好像说是旧版本Putty没法登录的事情,当时没仔细看,现在回头瞧瞧去。
我只截取其中相关的部分,原文见文末链接:
感谢这些好人啊,一下子就指出问题所在,就是旧版本的SSH被弃用了,所以要用新版的Putty等支持新版SSH的协议的工具。
那就更新一下呗,去官网下载了 0.78(released on 2022-10-29)版本的Putty,然后再次尝试登录:
你会注意到界面略有变化,不过大同小异,这都不是重点,重点是,我一下子就登录成功啦:
所以,困扰我大半天的无法登录问题,总算彻底解决了。
感谢那些不吝于分享自己经验的人,如果不是这人写了这个关于登录问题的Review,并且恰巧被我瞧见。想必就算我最终能发现这个问题,也要耗费更多的时间和精力。
所以,我也要做这样乐于分享的好人,把这个经验无私地分享给大家,也许哪天就帮助到有需要的人了呢。