原创文件,欢迎阅读,禁止转载。
今天发现一台主机不能远程了,ssh连接不上了。
排查过程是这样的:
1. ping没问题。
2. 通过telnet看端口是否开启。
[user@localhost ~]$ telnet 192.168.113.103 22
Trying 192.168.113.103...
Connected to 192.168.113.103.
Escape character is '^]'.
Connection closed by foreign host.
发现连上不到1秒就被断开了。
看来sshd是跑着的,看是运行不正常。
3. 跑到主机跟前,接上显示器,进行本地排查
4. 发现sshd居然加载了一个我们自己的libz.so,而不是系统库中的那个so.
系统自带的是 lib.so -> libz.so.1.2.3
我们的是 lib.so -> libz.so.1.2.8
原因分析:
原来是同事的在spark中为了加载C动态库方便,配置了/etc/ld.so.conf,这这里的一个目录下就有我们自己的libz.so.
然后今天重启了机器,sshd也就重启了,上面的配置就生效了,不能登录的问题也就出现了。
按说这个libz.so.1的主次版本应该是兼容的,不知为何工作不正常。
修复方法:
1. 改回了/etc/ld.so.conf
2. 让更改生效,执行命令 ldconfig
3. 然后重启sshd: service sshd restart
好了。
原创文件,欢迎阅读,禁止转载。