公司某台服务器不知为何无法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. 个人作业Week3

    个人作业week3 一.  调研,评测 1.我的使用体验 版本:IOS版   BUG_1: 点击单词本中的“同步”后,会提示登录Microsoft账户.登录成功立即开始同步单词本.在单词本同步过程中, ...

  2. 运行scrapy crawl (文件名)时显示invalid syntax和no modle 'win32api'解决方案

    使用pycharm爬取知乎网站的时候,在terminal端输入scarpy crawl zhihu,提示语法错误,如下: 原因是python3.7中将async设为关键字,根据错误提示,找到manho ...

  3. linux和Mac上安装composer

    使用命令行方式,可以直接使用下面的命令,顺序执行: php -r "copy ('https://getcomposer.org/installer','composer-setup.php ...

  4. Windows10 RedStone 1使用Bash体验

    很多年前,记得在Windows Server2008的Feature里发现了Windows Subsystem For Unix,当时也不知道干啥用的,还以为是Samba协议用的呢. 今天,发现Win ...

  5. Javascript中的闭包和C#中的闭包

    js和C#中都有闭包的概念,闭包本质上是一个对象,是指有权访问另一个局部作用域中的变量的对象(或函数,在C#中是委托).这个对象和函数/方法有关: 在js中,闭包是由于函数引用了局部变量形成的.在C# ...

  6. python3_列表、元组、集合、字典

    列表list #列表的基本操作 >>> a=[] #创建空列表 >>> a = [0,1,2,3,4,5] #创建列表并初始化,列表是[]包含由逗号分隔的多个元素组 ...

  7. Pandas三个数据结构

    系列(Series) 数据帧(DataFrame) 面板(Panel) 这些数据结构构建在Numpy数组之上,这意味着它们很快. 考虑这些数据结构的最好方法是,较高维数据结构是其较低维数据结构的容器. ...

  8. loadrunner分析结果二

    5 worst transaction transaction name:事务名 failure ratio[%](exceeded time/transaction duration)失败率 (超标 ...

  9. jquery stop()、callback、鏈接

    stop(stopAll,goToEnd) stop適用於所有的效果,包括顯示隱藏.滑動.淡入淡出和動畫. stopAll默認值為false,清除當前動畫,可以向後執行下一動畫調用,黨改為true,清 ...

  10. python---str和repr

    在 Python 中要将某一类型的变量或者常量转换为字符串对象通常有两种方法,即 str() 或者 repr() . 区别与使用 函数str() 用于将值转化为适于人阅读的形式,而repr() 转化为 ...