zoukankan      html  css  js  c++  java
  • 无法SSH服务器的解决过程(opensshdaemon 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官网下载高版本:
    (我用的是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
  • 相关阅读:
    基于百度翻译API开发属于自己的翻译工具
    .NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比
    基于uploadify.js实现多文件上传和上传进度条的显示
    浅析Ajax跨域原理及JQuery中的实现分析
    认识SQLServer索引以及单列索引和多列索引的不同
    用VS添加引用dll也会出错?你遇到过吗?
    .NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy
    免费打造自己的个人网站,免费域名、免费空间、FTP、数据库什么的,一个不能少,没钱,也可以这么任性
    【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-6底层驱动之多路开关选择器
    【6集iCore3_ADP触摸屏驱动讲解视频】6-4 底层驱动之SDRAM读写(上)
  • 原文地址:https://www.cnblogs.com/hy007x/p/6698525.html
Copyright © 2011-2022 走看看