使用Token2Shell连接亚马逊AWS Lightsail的SSH(默认key pairs密钥对)

最近Amazon AWS的Lightsail最低配从$5降到了$3.5,于是注册了个账号来体验下(远离EC2,搞不好房子就给亚马逊了,哈哈),发现世界前3的云服务提供商就是不一样,开了实例后发现SSH默认都是高大上的密钥验证方式,这让我这只会用户名密码登陆的土鳖着实懵逼了一下,好在有Web版的console,也能把需要的服务顺利搭起来,不过不能粘贴实在是不爽,于是还是决定研究下密钥验证的SSH登陆。
观察后发现,默认情况下亚马逊会给你的Lightsail实例所在区域自动创建一个密钥对,而提供给你直接下载的只是私钥private key (https://lightsail.aws.amazon.com/ls/webapp/account/keys):

先Download下来,然后发现我惯用的Windows SSH客户端Token2Shell对密钥验证的设置很“隐晦”,看了半天文档才意识到要将公私钥以指定的规则放到指定的位置(默认C:\Users\XXX\Documents\Token2Shell\ssh\keys,私钥叫LightsailDefaultPrivateKey-ap-northeast-1,公钥就得叫LightsailDefaultPrivateKey-ap-northeast-1.pub,见此:https://choung.net/howto/token2shell/public-key-user-auth/),那么亚马逊的默认公钥在哪了呢?

找了半天控制台页面也没找到,于是尝试Upload New来手动创建密钥对,公私钥也有了,传也传了,然后发现Lightsail实例下面赫然写着“You configured this instance to use default (ap-northeast-1) key pair.”而且…不能修改,于是google一通搜,发现要换密钥对得删了重建实例,这显然不符合懒惰的我的作风,于是又开始研究default key pair,随手搞了个高端SSH客户端Xshell一试,发现很方便的导入亚马逊的.pem私钥就能登陆了,正在犹豫是不是要放弃用了多年的Token2Shell时,偶然意识到公钥不应该就在虚拟机的系统里嘛,于是查了下,发现其实就在

~/.ssh/authorized_keys

这里,把这里的内容复制出来,放个和.pem同名但扩展名是.pub的文件,然后下载的.pem文件删掉扩展名,放到Token2Shell“期待”的位置,这时在Token2Shell的默认设置里相关选项内已经可以看到刚添加的密钥对名字:

这里也不用选中这个密钥,直接保留默认的就可以了,再次连接Lightsail实例的IP,输入用户名,ok,连接成功!嗯,不用输密码的感觉还不错,折腾的值了!

博主友情提示:

如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。