第一步,就是先把SSHD服务开启了。
执行这个就行: /etc/init.d/sshd restart
第二步,就是把Linux的防火墙关了。
1 执行:setup。
2 选择:firewall。
3 选择:no firewall.
4 退出。
也有可能是ssh在被暴力破解,连接数过大导致不能登陆。
可以增加SSH终端连接数最大为1000个
解决方案:
vi /etc/ssh/sshd_config
输入/MaxStartups 定位到如下并修改
#MaxStartups 10,#去掉,修改10为1000,MaxStartups 1000
重启SSH服务,/etc/rc.d/init.d/sshd restart
用命令/usr/sbin/sshd -p xxx 临时修改端口号 ,但是一重启就会还原,所以只能临时救急!
MaxStartups 默认设置是 10:30:60,意思是从第10个连接开始以30%的概率(递增)拒绝新连接,直到连接数达到60为止,可能因为 ssh ddos/brute force 触发了这个 MaxStartups 设置。根据当前 ssh 连接用户和服务器情况解决办法是,把这个值加大、在 /etc/hosts.allow 里只加上授权用户、或者使用 DenyHosts, Fail2ban 等工具屏蔽掉攻击源。
为了防止ssh连接断线,可用下列两种方案。
方案一:
只需在客户端电脑上编辑(需要root权限)/etc/ssh/ssh_config,并添加如下一行:
ServerAliveInterval 60
此后该系统里的用户连接SSH时,每60秒会发一个KeepAlive请求,避免被踢。
方案二:
如果有相应的权限,也可以在服务器端设置,即编辑/etc/ssh/sshd_config,并添加:
ClientAliveInterval 60
重启SSH服务器后该项设置会生效。每一个连接到此服务器上的客户端都会受其影响。应注意启用该功能后,安全性会有一定下降(比如忘记登出时……)
只需在客户端电脑上编辑(需要root权限)/etc/ssh/ssh_config,并添加如下一行:
ServerAliveInterval 60
此后该系统里的用户连接SSH时,每60秒会发一个KeepAlive请求,避免被踢。
方案二:
如果有相应的权限,也可以在服务器端设置,即编辑/etc/ssh/sshd_config,并添加:
ClientAliveInterval 60
重启SSH服务器后该项设置会生效。每一个连接到此服务器上的客户端都会受其影响。应注意启用该功能后,安全性会有一定下降(比如忘记登出时……)
查看某端口连接数
netstat -nat|grep -i '22' |wc -l
who
如果想要断开某个ssh 用户 可以在命令行输入
ps aux |grep sshd
得到pid 再用命令关闭那个pid:
kill -111
---
转载请注明本文标题和链接:《ssh连接不上与防止ssh断线》
发表评论