本文主要是介绍linux的sshd启动失败,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
估计是被攻击了,过个假期ssh就连接不上了,远程连接提示 network refused。只能跑到机房看个究竟,首先用大家的修改方式: Linux下SSH默认22端口的修改方法如下: NO 1: 01假如要改SSH的默认端口(22),那么你只要修改:/etc/ssh/sshd_config中Port 22,这里把22改成自己要设的端口就行了,不过千万别设和现已有的端口相同哦,以防造成未知后果。 02假如要限制SSH登陆的IP,那么可以如下做: 先:修改/etc/hosts.deny,在其中加入sshd:ALL 然后:修改:/etc/hosts.allow,在其中进行如下设置:sshd:192.168.0.241 这样就可以限制只有192.168.0.241的IP通过SSH登陆上LINUX机器了。当然在做为服务器方面,我都不装gnome和KDE的,而且很多东东都不装,这样增加安全系数。 NO 2: 首先修改配置文件 vi /etc/ssh/sshd_config 找到#Port 22一段,这里是标识默认使用22端口,修改为如下: Port 22 Port 2222 然后保存退出 执行/etc/init.d/sshd restart 这样SSH端口将同时工作与22和999上。 现在编辑防火墙配置:vi /etc/sysconfig/iptables 启用999端口。 执行/etc/init.d/iptables restart 现在请使用ssh工具连接999端口,来测试是否成功。如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除,即可。 之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试以免发生连接不上必须派人去机房,导致问题更加复杂麻烦。 我采用第二种方式,然后重启,结果很不幸启动失败,提示: 启动:sshd:Missing privilege separation directory:/var/empty/sshd [失败] 提示的大概意思应该就是权限的问题。 检查了下/var/empty中empty文件夹权限,把它 root@localhost># chown root.root /var/empty 改变权限呈现形式 drwxr-xr-x 2 root root empty (网络上的文章提示emtpy文件夹下应该是没有东西的,所以)我想现在没有问题了,重启 root@localhost># /etc/init.d/sshd restart 结果启动失败,查找/var/empty文件夹内容,显示只有x.pid文件,但没有sshd,试着 root@localhost># mkdir sshd 然后重启sshd服务,问题解决. root@localhost># nmap -v target.example.com 检查下是不是本地端口中ssh端口开了。 就这里问题,把我郁闷了半天,而且网络上的还找不到,偶尔瞥见一个也是有问无答。sshd服务为何会突然停止,具体原因还有查证中,如果有哪位知道不妨回复我,不甚感谢! |
这篇关于linux的sshd启动失败的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!