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

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

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

先连上去看看,显示如下,

‘‘ ssh -p 50000 -i pwawscn.pem [email protected]54.223.xx.xxx
‘‘ [email protected]54.223.xx.xxx‘s password:

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

试着查找了一下两天之内修改的所有文件,但可能是因为文件太多,或者是因为权限的原因,没有找到有用的信息。

中午的时候提交给aws的技术支持后(我们的服务是在aws上),我再次询问了我的同事,他才告诉我他装了git,可能是因为git重新生成了密钥,将之前的给覆盖了。告诉我将git与代码装到一起了,不影响系统,应该不会有问题,的吧,我晕死了。

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

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

authorized_keys known_hosts

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

id_rsa id_rsa.pub know_hosts

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

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

ssh -p 50000 -i pwawscn.pem [email protected]54.223.xx.xxx

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

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

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

时间: 2024-10-09 00:17:43

记一次服务器密钥失效经历的相关文章

记一次服务器被挖矿经历与解决办法

记一次服务器被挖矿经历与解决办法 在最近的某一天里面,中午的一个小息过后,突然手机的邮件和公众号监控zabbix的告警多了起来.我拿起手机一看原来是某台服务器上的CPU跑满了,就开始登上去看一下是哪个脚本导致负荷高的(在期间使用top -d 1命令查看负荷占用情况).可以静下来想了下,中午大家都在休息不应该CPU负载会这么高的,心里想80%是服务器被黑了. 后来发现是/tmp/ddgs.3013和/tmp/qW3xT.2这两个文件跑满了服务器CPU,后来决定先kill掉文件PID和删除/tmp目

记一次服务器Tomcat优化经历

博主原创,转载请注明. 公司需要一台测试服务器来做测试用,所以花了几天时间把服务全部部署好,在部署好war包之后,发现Tomcat访问超级慢. 1.进入Tomcat的bin目录下,运行 ./catalina.sh run命令,在前台打印运行信息,首先看其有没有报错.好,没有报错,进行下一步. 看打印信息输出的快慢,如果卡在某一句上,那么证明你的配置是有问题的. 如何解决? 1)修改你的jdk目录下/jre/lib/security目录下的java.security这个文件,将securerand

记一次服务器上架的总结和反思

由于博主所在公司最近业务量上升,各个项目进度加快,使得原有饱和的服务器资源变得紧张起来.博主很是着急啊,于是就做了一系列的资源使用统计和分析,然后向上递交了采购计划. 如题<记一次服务器上架的总结和反思>,服务器采购计划最终是批了.博主心情愉悦地等待着这批服务器的到达,并设计了相关的上架流程和自动化方案,最终进行了具体的实施操作.虽然在实施过程中遇到了一些问题,不过都是些不影响主流程的小问题,其中不乏在流程中忽略的点和未设计到的点,这些都是很值得事后思考和反思了.毕竟,这只是一次扩容,以后这种

使用Heartbeat和脚本使服务器服务失效后自动切换

名词解释: 簇群(cluster):所有参与heartbeat检测,共同接管统一任务的服务器组 主机(primary):配置时指定接管VIP,提供服务的服务器 备机(backup):配置时检测主机heartbeat,在主机失效时接管VIP并提供服务的服务器 有效(valid):当前接管VIP并提供对外服务的服务器 失效(invalid):当前有效的服务器因各种情况无法提供服务,或无法接管VIP 案例:两台linux服务器组成簇群,主机设置为A,备机为B.提供服务的接口eth0,IP地址为A:19

【转】记我的一次外包经历

http://www.cnblogs.com/whh306318848/p/5191473.html 其实外包是很多人在职业生涯中都会遇到的问题,也就是接私活.今天我来说说我遇到过的一次外包经历,我要说的这次外包经历既不是我的第一个外包项目,也不是最后一个,之所以要记下来,是因为这是我目前为止遇到过的最坑的一次,导致我整个2015年都在为这一次外包进行补救.不过,我写这篇文章并不是为了抱怨,而是为了记录这次事件,提醒自己在以后的项目(不论是是公司的项目还是自己的项目)中不要再像这样行事,还有就是

记一次阿里电面经历

昨天下午(3/19)三点多钟,接到了一个杭州的电话,是阿里的.问我是否方便聊聊.我说我在上课,四点下课.然后他就四点多钟的时候又打了一次过来. 项目经历 上来就问我有无大型项目的经历.不好意思,我说无.. .又问我代码量怎样,我说之前有常常刷ACM的题目,所以代码量还能够. C语言变量 问:"函数中的局部变量保存在哪里?" 答:"栈" 问:"函数中的局部静态变量保存在哪里?" 答:"静态区.." 问:"局部静态变量和

Linux服务器密钥安全登录

使用密钥登录的好处:1.省事,不用每次去敲用户名和密码:2.安全,密钥长度一般是1024位,比我们设的密码要长得多: 以下是为新用户jackson添加密钥登录的步骤. 1.添加用户,并添加到sudoer. useradd jackson passwd jackson 添加到sudo组 visudo 在 root ALL=(ALL) ALL 后添加 hubery ALL=(ALL) ALL 2.生成并添加公钥到Server ssh-keygen -t rsa sshssh-copy-id -i ~

使用PuTTY设置服务器密钥验证

验证用户身份除了可以使用用户名和密码之外,还可以使用密钥验证.密钥是成对出现的,公钥和私钥.私钥放在本地,公钥放在服务器上,连接时私钥和公钥配对,如果配对成功则验证通过,否则失败.这种验证方式比较安全.使用putty自带的密钥生成工具puttygen生成密钥对. 1.打开开始菜单中PuTTY文件夹下的PuTTYgen工具. 2.点击"Generate"生成密钥对, 3.不停移动鼠标,加速生成 4.生成密钥对成功,设置密钥描述和密码,点击"Save private key&qu

linux服务器密钥分发

1.密钥分发脚本(一般是管理机进行分发,批量管理服务器) #管理机创建公钥 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1 #服务器密码统一,可以这样玩 password=123456 #分发密钥 for i in "192.168.10.10" "192.168.10.11" "192.168.10.12" do sshpass -p $password ss