タイトルの通りなのですが、SSHを使用してどこかへ接続しようとした時にssh_exchange_identification: Connection closed by remote host
と言われて接続できないことがあります。
ググると
-
known_hosts
を消す -
/etc/hosts.allow
を書き換える
といった対処法がヒットするかと思いますが、それを試しても直らない時に確認してほしいことです。
(この記事は~/.ssh/config
を使っていて、かつProxyCommand
で多段SSHしている人しか役に立たないと思われます。当てはまらなかったら残念ながら多分別の原因です…)
結論
先に結論を述べると、**接続先マシンのIPアドレス本当にあってる?**というのを確認しましょう。
接続先のマシンのIPが何らかの原因で変わってしまっているパターンもあると思うので確認しましょう。(私はこれでした)
どういうことか
普通にSSHを使用していて、sshdの上がっていないマシンに接続しようとすると
ssh: connect to host 192.168.1.10 port 22: No route to host
のようなメッセージが表示されます。
しかし、多段SSHをしていてかつ踏み台のサーバーへはSSH可能な場合には、
ssh_exchange_identification: Connection closed by remote host
が表示されてしまいます。
ここで接続先のマシンのIPがおかしいのでは?と気がつけばすぐ解決するような内容なのですが、軽く躓いたので同じ目に遭った人が解決してくれるといいなぁということで書いてみました。誰かのお役に立てたら幸いです。