Linux:SSH服务异常,无法登录解决办法
起因:通过xshell登录服务器,没有反应,联系机房查看ssh端口,发现ssh端口没了,一查服务也停了,启动后怎么也起不来。问题现象:1.执行netstat -atnlp|grep ssh,没有找到ssh端口2.执行ps aux|grep ssh,没找到相关进程3.执行service sshd start,显示绿色的OK,但用ps和netstat看不到ssh任何信息,echo $?结果为04.执行
起因:通过xshell登录服务器,没有反应,联系机房查看ssh端口,发现ssh端口没了,一查服务也停了,启动后怎么也起不来。
问题现象:
1.执行netstat -atnlp|grep ssh,没有找到ssh端口
2.执行ps aux|grep ssh,没找到相关进程
3.执行service sshd start,显示绿色的OK,但用ps和netstat看不到ssh任何信息,echo $?结果为0
4.执行service sshd status,显示:openssh-daemon is stopped
4.执行service sshd stop,无报错信息,echo $?结果为0
5.执行service sshd restart,出现下图错误提示
6.查看/var/log/messages 和/var/log/secure 均没有报错信息。
解决方法尝试:
一、yum重装openssh-server等 (失败)
1.用 rpm -qa | grep openssh 查看有哪些ssh包
#rpm -qa | grep openssh*
openssh-server-5.3p1-94.el6.x86_64
openssh-clients-5.3p1-94.el6.x86_64
openssh-5.3p1-94.el6.x86_64
2.用 yum remove openssh-server 把软件包删掉,其他的openssh包保险起见没删,怕全删了会因依赖关系包被删,进而影响其他业务的运行。
3.用yum install openssh-server 重新安装该包,操作完成后,用service sshd start 发现和当初一样,start是OK状态,但服务起不来。
二、最后尝试编译安装openssh(成功)
1、下载软件包
cd /usr/local/src/
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.7p1.tar.gz
1、下载openssh-6.7p1.tar.gz:
cd /usr/local/src/
wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-6.7p1.tar.gz
2、备份ssh配置文件:
mv /etc/ssh /etc/ssh.bak
3、查看是否缺包
rpm -qa | egrep "gcc|make|perl|pam|pam-devel|zlib|zlib-devel"
如果有配置yum了的话可以直接yum安装这些包,这样既可以检验是否装了,没装的直接装上。
yum -y install gcc* make perl pam pam-devel zlib zlib-devel
先卸载完旧版本的openssh
rpm -e --nodeps `rpm -qa | grep openssh`
开始编译安装
1、安装openssh-6.7
tar zxf openssh-6.7p1.tar.gz && cd openssh-6.7p1
如果需要伪装ssh显示的版本信息,先修改version.h文件:
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
make
make install
2、查看是否升级到新版本
3、复制启动脚本到/etc/init.d
cp /root/openssh-6.7p1/contrib/redhead/sshd.init /etc/init.d/sshd
4、加入开机自启
chkconfig --add sshd
chkconfig sshd on
chkconfig sshd --list
5、启动sshd,用start或reload。不要restart,restart 会直接断开连接,而并不会接着启动sshd服务,这时候要通过其他途径进入机器,然后启动sshd服务才行。
问题显现:
1、ssh查看状态后出现报错:sshd dead but subsys locked
[root@cacti主246 app]# service sshd status
sshd dead but subsys locked ##百度查看此报错解决办法
[root@cacti主246 app]# sshd -d
sshd re-exec requires execution with an absolute path
[root@cacti主246 app]# find / -name sshd
/usr/local/src/openssh-6.7p1/sshd
/usr/local/src/openssh-6.7p1/contrib/hpux/sshd
/usr/sbin/sshd
/var/lock/subsys/sshd
/etc/rc.d/init.d/sshd
[root@cacti主246 app]# /usr/sbin/sshd -d
debug1: sshd version OpenSSH_6.7, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: private host key: #0 type 1 RSA
debug1: private host key: #1 type 2 DSA
debug1: private host key: #2 type 3 ECDSA
debug1: private host key: #3 type 4 ED25519
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-d'
Set /proc/self/oom_score_adj from 0 to -1000
debug1: Bind to port 22 on 0.0.0.0.
Server listening on 0.0.0.0 port 22.
debug1: Bind to port 22 on ::.
Server listening on :: port 22.
解决办法:
[root@cacti主246 app]# ls -l /dev/null
-rw-r--r--. 1 root root 115265 Oct 20 16:40 /dev/null
[root@cacti主246 app]# mv /dev/null /dev/null.bak
[root@cacti主246 app]# mknod /dev/null c 1 3
[root@cacti主246 app]# service sshd restart
Stopping sshd: [FAILED]
Starting sshd: [ OK ]
[root@cacti主246 app]# netstat -lntup 端口22成功启动
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 6515/zabbix_agentd
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 13259/snmpd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7278/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 14441/sshd
tcp 0 0 :::10050 :::* LISTEN 6515/zabbix_agentd
tcp 0 0 :::873 :::* LISTEN 12116/xinetd
tcp 0 0 :::80 :::* LISTEN 5487/httpd
tcp 0 0 :::22 :::* LISTEN 14441/sshd
tcp 0 0 :::23 :::* LISTEN 12116/xinetd
udp 0 0 0.0.0.0:161 0.0.0.0:* 13259/snmpd
三、ssh无法远程机房服务器的情况下,可以开启telnet远程登录,解决完问题后及时telnet远程登录。
1.安装telnet
检查是否有telnet客户端与服务端
rpm -qa telnet*
12
若没有则安装telnet
yum install -y telnet telnet-server xinetd
2.开通telnet端口
vim /etc/services
去掉23端口注释
3.设置telnet服务状态
vim /etc/xinetd.d/telnet
将disable=yes改为disable=no
4.配置权限
vi /etc/pam.d/login
5.开通telent控制台
vi /etc/securetty 文件末尾添加
pts/1
pts/2
pts/3
pts/4
pts/5
123456
6.重启服务
service xinetd restart
7、然后可以直接在CRT或者xshell中使用 telnet 登录
telnet 192.168.100.100
配置方法参考此网站:https://blog.csdn.net/lz9009/article/details/99632344
其他内容参考博客:
https://www.cnblogs.com/chimeiwangliang/p/7729883.html
https://blog.csdn.net/baidu_33615716/article/details/90178483
https://www.cnblogs.com/hy007x/p/6698525.html
更多推荐
所有评论(0)