无法SSH服务器的解决过程(openssh-daemon is stopped)

公司某台服务器不知为何无法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,出现下图错误提示:



解决过程:

一.查看日志:

 

查看/var/log/messages,和/var/log/secure文件内容

(目的:查看SSH的所有相关日志信息,以便于分析,但发现这两个文件被删掉了)

用touch命令重新建立messages和secure文件,再重启sshd服务,但这两个文件内容依旧为空。(先不管它)

二.用yum重新安装(没成功):

 

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

    openssh-askpass-5.3p1-94.el6.x86_64

2.用 yum remove openssh-server 把软件包删掉,其他的openssh包保险起见没删,怕全删了会因依赖关系包被删,进而影响其他业务的运行。

3.用yum install openssh-server 重新安装该包,操作完成后,用service sshd start 发现和当初一样,start是OK状态,但服务起不来。

三.改用编译方式重装openssh(成功):

 

1.首先用yum remove openssh-server删掉原先的包,在openssh官网下载高版本:

http://www.openssh.com/openbsd.html

(我用的是openssh-7.3p1.tar.gz,在官网没找到,所以在csdn下载了该包)

2.编译安装:

tar -xvzf openssh-7.3p1.tar.gz  -C  /opt  &&  cd /opt/openssh-7.3p1

./configure && make && make install

编译参数可参考:http://www.2cto.com/os/201703/615376.html

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening

3.拷贝ssh服务文件:

cp ./contrib/redhat/sshd.init /etc/init.d/sshd

chmod +x /etc/init.d/sshd

4.修改SSHD服务文件:

vim /etc/init.d/sshd

修改以下内容

SSHD=/usr/sbin/sshd 为 SSHD=/usr/local/sbin/sshd    【25行】

/usr/sbin/ssh-keygen -A 为 /usr/local/bin/ssh-keygen -A    【41行】

保存退出

5.加入系统服务:

chkconfig --add sshd

查看系统启动服务是否增加改项

chkconfig --list |grep sshd

sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off

6.允许root用户远程登录:

cp sshd_config /etc/ssh/sshd_config

vim /etc/ssh/sshd_config 修改 PermitRootLogin yes,并去掉注释

7.配置允许root用户远程登录:

这一操作很重要!很重要!很重要!重要的事情说三遍,因为openssh安装好默认是不执行sshd_config文件的,所以即使在sshd_config中配置允许root用户远程登录,但是不加上这句命令,还是不会生效!

vim /etc/init.d/sshd

在 ‘$SSHD $OPTIONS && success || failure’这一行【51行】上面加上一行 :

OPTIONS="-f /etc/ssh/sshd_config"  

保存退出

执行:service sshd start,出现绿色的OK,

执行:service sshd status,

此时出现了以下错误信息:

error: sshd dead but subsys locked

解决方法:

rm -rf /dev/null

mknod /dev/null c 1 3

再次启动后,出现了sshd is running,端口和进程都出现了:

service sshd start

service sshd status

sshd is running......

端口和进程都出现了:

ps aux|grep ssh

netstat -atnlp|grep ssh

搞定。

总结:故障原因未知。用yum方式安装的ssh服务启动不成功,可能是某些与SSH相关联的进程需要通过重启系统才生效(生产环境不允许随便重启系统)。而编译方式安装的ssh,与之前的进程没有关联,所以能启动成功。

至于为何ssh服务会出现故障,暂无法查出原因。编译openssh的时候,可以根据需要添加参数(--with-pam,--with-tcp-wrappers等)。

参考资料:http://www.cnblogs.com/wuling129/p/5072965.html

时间: 2024-08-30 08:06:37

无法SSH服务器的解决过程(openssh-daemon is stopped)的相关文章

Ubuntu安装SSH服务器故障分析及解决办法(错误1:E:软件包 openssh-server 还没有可供安装的候选者,错误2:E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系)

?    微博: 小样儿老师2015 Windows下做Linux开发需要SSH强大功能的支持.安装SSH的过程会出现了很多问题,看完这篇文章可以让你少走些弯路,PS:折腾一下午的成果. Ubuntu的apt-get工具的牛逼之处简直无人能及,Apt-get应用就是通过一个记录有所有可用软件包的配置文件,在服务器上查找你想要的可用软件包,然后下载并安装, 在终端输入命令行: $ sudo apt-get install openssh-server 出现错误: 完成正在分析软件包的依赖关系树正在

Xshell连接linux(deepin)时提示ssh服务器拒绝了密码,请再试一次解决方法

用Xshell root连接时显示ssh服务器拒绝了密码,应该是应该是sshd的设置不允许root用户用密码远程登录 修改 /etc/ssh/sshd_config文件,注意,安装了openssh才会有这个文件,如果文件不存在请检查是否安装了openssh. 输入以下命令 找到 改成 如果不能更改,说明权限不够.使用root权限. 然后输入命令 /etc/init.d/ssh restart 重启ssh服务即可. 如果不行,接直接重启Linux

Linux与云计算——第二阶段 第三章:SSH服务器架设(上)openssh 基础

Linux与云计算--第二阶段Linux服务器架设 第三章:SSH服务器架设(上)openssh 基础 1.密码认证 配置SSH服务器以便远程主机连接访问 [1] 即使你在安装CentOS系统的时候选择了最小化安装,OpenSSH也会被默认安装,所以你不需要再安装任何额外的软件包来实现该功能.缺省情况下你可以通过密码实现远程访问,如果需要增强安全性,建议还是要修改部分配置. [[email protected] ~]# vim /etc/ssh/sshd_config # line 49:去掉备

Gravitational Teleport 是一个先进的 SSH 服务器,基于 Golang SSH 构建,完全兼容 OpenSSH

Gravitational Teleport 是一个先进的 SSH 服务器,可通过 SSH 或者 HTTPS 远程访问 Linux 服务器.其目的是为了替代 sshd.Teleport 可以轻松让团队以最佳实践来使用 SSH,例如: 无需分发密钥,Teleport 使用基于证书的访问并实现自动过期 增强了两阶段身份验证 集群支持,每个 Teleport 节点是集群的一部分,而且可通过 Web UI 浏览 可以记录和重放 SSH 会话,方便分享和审计 通过会话的共享来实现协作诊断问题 可通过 HT

Linux与云计算——第二阶段 第三章:SSH服务器架设(下)openssh 进阶

Linux与云计算--第二阶段Linux服务器架设 第三章:SSH服务器架设(下)openssh 进阶 5.SFTP+Chroot 配置SFTP only + Chroot. 给一些用户限制他们只允许SFTP访问特定的目录. [1] 例如, 设置 /home 作为Chroot目录. # 为SFTP创建一个组 [[email protected] ~]# groupadd sftp_users # 限制只有用户"user"可以使用SFTP [[email protected] ~]# u

linux服务器报No space left on device错误的解决过程记录

起因 今天在本地提交了点代码,但到服务器上git pull的时候提示No space left on device,第一反应是猜想可能硬盘满了(很有可能是log导致的),不过想想又觉得不太可能,这台服务器上只部署了一个应用,查看项目占用空间也不大. 解决过程 1.作为一个linux菜鸟,第一时间百度查关于查看硬盘使用情况的命令 [[email protected] ~]# df -h文件系统 容量 已用 可用 已用% 挂载点/dev/hda1 20G   2.4G  18G 13%  /tmpf

记录linux /bin被误删除的解决过程

1.事因: 执行shell测试时,shell中rm -rf $path/* 变量$path为空,结果执行的命令是rm -rf / 事发时及时ctrl+c中断,导致只有/bin /boot目录删除 2.造成后果 大部分/bin下的shell命令无法执行,例如ls mkdir chmod tar ssh login...也就是想ssh远程登录也不行了. 3.解决过程 1).好在我当前ssh会话没有关上,虽然新会话没有办法远程ssh,但只要现在这个会话不关闭那么就可以一直用着……………… 2).从集群

suse11.2 ssh安装并启动ssh无法登录解决

suse11.2 ssh安装并启动ssh无法登录解决-网络 1.SuSE Linux下启动sshd: 命令行:rcsshd start YaST:找不到sshd,但是打开全部inetd服务,ssh就可用了,奇! 待我发现机关,再改此文. 2.配置SSH服务: 1. 修改配置文件 #vi /etc/ssh/sshd_config www.ahlinux.com 2. 找到#PermitRootLogin no将其修改为PermitRootLogin yes 前晚装了这个版本,感觉它的gome桌面比

iTOP-IMX6UL 实战项目:ssh 服务器移植到 arm 开发板

实验环境:迅为提供的Ubuntu12.04.2 以及虚拟机 编译器:arm-2009q3 编译器 开发板系统:QT系统 开发板使用手册中给Windows 系统安装了 ssh 客户端,给 Ubuntu 安装了 ssh 服务器,这样就可以通过ssh 在 Windows 和虚拟机 Ubuntu 之间传输文件.其实在开发 板上也是可以移植和安装ssh 服务器,这样就可以通过网络,在 Windows 和开发板之间传 输文件.“实战教程-ssh 服务器移植到开发板”,我们要完成的目标是能够通过 ssh 在开