ssh_exchange_identification 可能的问题

ssh 登陆一台服务器的时候报错:

$ ssh user@server
ssh_exchange_identification: Connection closed by remote host
以下是常见的原因以及解决方案:

1、检查 /etc/hosts.deny 和 /etc/hosts.allow 里面是否屏蔽了某些帐户;
2、删除 ~/.ssh/known_hosts 里面的相关服务器条目试一下;
3、Debian 上 /var/run/sshd/ 的所属问题导致 SSH 不能启动;
4、在某些发行版上升级 glibc 或 openssl 等软件包以后需要重启一下 sshd;
5、由于 ssh 试探或者 ssh 连结数太多,/etc/ssh/sshd_config 里面的 MaxStartups 默认参数配置不够用;
6、。。。

这里遇到的就是“情况5”,控制台直接登陆服务器后检查 /var/log/secure 发现大量未经授权和失败的连接,典型的 ssh brute force 。
先看一下帮助文件,看看 MaxStartups 10:30:60 是啥意思:

# man sshd_config
...
MaxStartups
...
Alternatively, random early drop can be enabled by specifying the
three colon separated values “start:rate:full” (e.g. "10:30:60").
sshd(8) will refuse connection attempts with a probability of
“rate/100” (30%) if there are currently “start” (10) unauthenti-
cated connections. The probability increases linearly and all con-
nection attempts are refused if the number of unauthenticated con-
nections reaches “full” (60).
...
MaxStartups 默认设置是 10:30:60,意思是从第10个连接开始以30%的概率(递增)拒绝新连接,直到连接数达到60为止,可能因为 ssh ddos/brute force 触发了这个 MaxStartups 设置。根据当前 ssh 连接用户和服务器情况解决办法是,把这个值加大、在 /etc/hosts.allow 里只加上授权用户、或者使用 DenyHosts, Fail2ban 等工具屏蔽掉攻击源。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 128,839评论 18 137
  • sshd_config配置详解 重启SSH服务 service sshd restart 名称 sshd_conf...
    一指弹风阅读 14,809评论 0 3
  • ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,...
    lovelycai阅读 23,694评论 6 17
  • 当我再提笔写下,这些往事。 当我再回忆起你。 当我再一次盼望可以与你重逢。 昨夜的风,海浪的声音,在波光粼粼的湖面...
    月也微凉阅读 57评论 0 0
  • 我的小时候爸妈都不善教育,看我爱好读书,于是常常就买来《读者》《意林》让我读,按照今天的说法,就是觉着这些充满“正...
    千年放浪阅读 433评论 1 5
  • 记忆从绵长而悠远的深处 回到笔尖 窗外的雷,对着大地闷哼了几句 似在挑衅,似在说着怨恨话语 我,此刻坐在这里 并不...
    艾白思阅读 207评论 0 2