公司某台服务器不知为何无法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官网下载高版本:
(我用的是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

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

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

    •    微博: 小样儿老师2015 Windows下做Linux开发需要SSH强大功能的支持.安装SSH的过程会出现了很多问题,看完这篇文章可以让你少走些弯路,PS:折腾一下午的成果. Ubuntu ...

  2. 腾讯云centos服务器不能登录的解决过程

    在腾讯云上申请了一个centos服务器,最基础的配置,1 核 1 GB 1 Mbps,50G硬盘,主要用来测试程序,练手用.在上面配置了一个mysql数据库,一直使用都没什么问题. 1 问题描述 过了 ...

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

    Gravitational Teleport 是一个先进的 SSH 服务器,可通过 SSH 或者 HTTPS 远程访问 Linux 服务器.其目的是为了替代 sshd.Teleport 可以轻松让团队 ...

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

    起因 今天在本地提交了点代码,但到服务器上git pull的时候提示No space left on device,第一反应是猜想可能硬盘满了(很有可能是log导致的),不过想想又觉得不太可能,这台服 ...

  5. 服务器被疑似挖矿程序植入,发现以及解决过程(建议所有使用sonatype/nexus3的用户清查一下)

    此次服务器被植入挖矿程序发现起来较为巧合,首先是上周三开始,我通过sonatype/nexus3搭建的仓库间歇性崩溃,但是每次重新start一下也能直接使用所以没有彻底清查,去docker logs里 ...

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

    用Xshell root连接时显示ssh服务器拒绝了密码,应该是应该是sshd的设置不允许root用户用密码远程登录 修改 /etc/ssh/sshd_config文件,注意,安装了openssh才会 ...

  7. 真实记录疑似Linux病毒导致服务器 带宽跑满的解决过程

    案例描述 由于最近我在重构之前的APP,需要和server端进行数据交互,发现有一个现象,那么就是隔1~2天总会发生获取数据超时的问题,而且必须要重启服务器才能解决.早在之前,我有留意到这个问题,但是 ...

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

    1.事因: 执行shell测试时,shell中rm -rf $path/* 变量$path为空,结果执行的命令是rm -rf / 事发时及时ctrl+c中断,导致只有/bin /boot目录删除 2. ...

  9. 【转】ssh服务器启动和客户端常用操作

    前言 简单的来说,SSH 是 Secure SHell protocol 的简写 (安全的壳程序协议),它可以透过数据封包加密技术,将等待传输的封包加密后再传输到网络上, 因此,数据讯息当然就比较安全 ...

随机推荐

  1. BugPhobia终章篇章:学霸在线系统Beta阶段展示

    0x00 :序言 1 universe, 9 planets, 204 countries,809 islands, 7 seas, and i had the privilege to meet y ...

  2. 《Linux内核设计与实现》读书笔记 5

    第五章系统调用 5.1与内核通信 系统调用在用户空间进程和硬件设备间添加了一个中间层, 作用:为用户空间提供了一种硬件的抽象接口:保证了系统的稳定和安全,避免应用程序不正确使用硬件,窃取其他进程的资源 ...

  3. Proxy基础---------获取collection接口的构造跟方法

    1----查看proxy api 2------测试代码 package cn.proxy01; import java.lang.reflect.Constructor; import java.l ...

  4. 推广App篇

    推广App篇 团队github地址:https://github.com/ouqifeng/EasyGoOperation.git 在完成该项目工程后,我们开始寻找合适的方法推广我们的软件. 经过一番 ...

  5. /langversion 的选项“4”无效;必须是 ISO-1、ISO-2、3 或 Default SystemFrameWorkV3

    https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/configure-language-version Edit th ...

  6. Event事件2

    1,阻止默认行为: 2,事件监听 3,事件流之事件捕获 4,事件委托 阻止默认行为 浏览器中有很多默认行为,比如当点击a标签后,会发生链接的跳转.当点击鼠标的右键时, 会显示右键菜单等. 有些时候,浏 ...

  7. DVWA的安装与简单使用

    参考资料: http://www.freebuf.com/articles/web/119150.html 尝试使用linux机器安装,但是因为下载php版本以及各种兼容性的问题耗时较长, 所以后来选 ...

  8. [读书笔记]Linux命令行与shell编程读书笔记03 文件系统等

    1. 文件系统的种类 ext ext2 ext3 ext4 JFS XFS 其中ext3 开始支持journal日志模式 与raid卡类似 有 数据模式  排序模式 以及回写模式 数据模式最安全 回写 ...

  9. Jquery 事件冒泡、元素的默认行为的阻止、获取事件类型、触发事件

    $(function(){// 事件冒泡 $('').bind("click",function(event){ //事件内容 //停止事件冒泡 event.stopPropaga ...

  10. [代码]Delphi实现窗体内嵌其他应用程序窗体

    实现原理是启动一个应用程序,通过ProcessID得到窗体句柄,然后对其设定父窗体句柄为本程序某控件句柄(本例是窗体内一个Panel的句柄),这样就达成了内嵌的效果. 本文实现的是内嵌一个记事本程序, ...