WenRou's Blog
ssh连接不上与防止ssh断线
2015-1-30 温柔哥
一般问题是防火墙的问题,所以通过官方vps面板VNC连接主机后,

第一步,就是先把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服务器后该项设置会生效。每一个连接到此服务器上的客户端都会受其影响。应注意启用该功能后,安全性会有一定下降(比如忘记登出时……)





查看某端口连接数


netstat -nat|grep -i '22' |wc -l







查看Linux服务器有多少个用户连接ssh的方法


who





如果想要断开某个ssh 用户 可以在命令行输入



ps aux |grep sshd 





得到pid 再用命令关闭那个pid:



kill -111

发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容