私のラップトップからHOST1に接続しようとすると、次のようになります。
$ ssh -vvv user@HOST1
OpenSSH_6.0p1 Debian-3ubuntu1, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to HOST1 [x.x.x.x] port 22.
ssh: connect to host HOST1 port 22: Connection timed out
サーバーのSSHデーモンは他のコンピュータから接続できるため、正常に動作します。
たとえば、私のラップトップからHOST2にSSH経由で接続でき、そこからHOST1にSSH経由で接続できますが、これは面倒です。
HOST1は私が制御できるホストですが、これはgithubとbitbucketでも発生します。
これにより、問題はクライアント側にしかないと考えられますが、アイデアが不足しています。
どんな提案がありますか?
答え1
問題は、これらのサーバーがオプションでクライアントコンピュータを認証しようとし(最終的にログインできるように)、その方法を使用できる場所を見つけるのにタイムアウトすることです。
一般的な状況は、サーバーがクライアントでリバースDNS検索を試みることです。ホストで無効にしてみてください:ファイルUseDNS No
に追加しますsshd_config
。このオプションはデフォルトでオンになっていますが、ほとんど使用されません。タイムアウトが発生する可能性がありますが、通常は数秒しかかかりません。バラよりsshd "UseDNS"オプションの意味は何ですか?
あまり一般的ではありませんが、より迷惑なもう1つの原因はGSSAPI(Kerberos)です。もう一度閉じてみてください。バラよりSSHログイン速度をどのように向上できますか?
答え2
これは、単にICMP「アクセス不可」応答を破棄したり、SSHトラフィックをフィルタリングしたりするファイアウォールです。 「接続タイムアウト」とは、接続要求が送信されたが、いかなる種類の応答も受け取らなかったことを意味します。
tcpdump(1)
および/または(必要に応じて意図した接続の両端で)を使用してwireshark
フィルタを確認してゼロ化します。おそらくtcpping(1)
範囲を狭めるのに役立ちます。