记一次服务器密钥失效经历

早上来公司,收到这个消息,个人心是崩溃的。git

“tim老师,测试服务器的远程登陆密钥失效了”,我问他,作了什么改动没,获得的确切回复是“只是上传了一些代码”,再次询问下,坚持只上传了些代码,言之凿凿。
这个问题可大了,
1. 就这个机器而言,没有作任何事,“只是上传了代码”就致使用了两年的密钥不能用了,这个机器是着急用来搭建测试服务器的。这个测试服务器已经搭建了一个多星期了,以前一直说代码没准备好,如今又蹦出这个,真是幺蛾子啊。
2. 全部包括正式的服务器与测试服务器一共11台。要是全部的服务器都在某个时候出这个问题,我就干不下去了。
ubuntu

先连上去看看,显示以下,服务器

'' ssh -p 50000 -i pwawscn.pem ubuntu@54.223.xx.xxx
'' ubuntu@54.223.xx.xxx's password:

 

以前配置用密钥登陆,用了一年多时间了,不可能会跳出这个密码提示的。首先确定怀疑是sshd-config被改了。查看,没问题,ssh配置是用key与password均可以登陆。有点纳闷,我还开着password登陆啊(时间一长,很久没摸了,本身记忆也模糊了),隐约记得最开始的时候是开过密码登陆的,查了查以前的一个记满密码的文档,发现有一个用户名与密码,居然登陆上去了,大喜。运维

试着查找了一下两天以内修改的全部文件,但多是由于文件太多,或者是由于权限的缘由,没有找到有用的信息。ssh

中午的时候提交给aws的技术支持后(咱们的服务是在aws上),我再次询问了个人同事,他才告诉我他装了git,多是由于git从新生成了密钥,将以前的给覆盖了。告诉我将git与代码装到一块儿了,不影响系统,应该不会有问题,的吧,我晕死了。工具

确定就是出在这个公钥密钥上的了。问题是还能恢复成之前那对公/密钥吗?要否则就与其它机器不方便统一管理了,一些脚本也得从新改了。测试

下午在aws技术支持的帮助下,与其它链接正常的服务做比较后。确实发现了问题。
在home/ubuntu/.ssh下,正常机器上是下面文件:(两个文件)spa

authorized_keys known_hosts


而我在出问题的机器上是下面的文件:(三个文件)pwa

id_rsa id_rsa.pub know_hosts


看时间,id_rsaid_rsa.pub就是昨天晚上同事为git新生成的了。code

aws同窗给出的方案倒也是简单,直接从正常机器上将authorized_keys复制过来便可。先新建了一个备份文件夹,将不要的东西(包括git的key)都移进去,只留下两个文件(authorized_keys与known_hosts),便可,都不用重启服务了。用以前的命令就能直接访问了。

ssh -p 50000 -i pwawscn.pem ubuntu@54.223.xx.xxx

在网上稍微查了一些生成公钥私钥的文章。通常使用ssh-keygen生成id_rsa(私钥)id_rsa.pub(公钥),私钥要本身保存,公钥要更改成系统识别的文件名authorized_keys置于.ssh下。

鉴于这个公钥能够从其它机器copy过来能够看出,公钥与密钥的生成与具体的机器没有关系,生成过程没有使用与具体机器相关的信息。还有,这对密钥是与具体的用户相联的。

 

另外,得考虑引进一个成熟的运维工具,准备快速地浏览一下ansible这个了。

相关文章
相关标签/搜索