PLINK(PuTTY)を介してLinuxサーバーに自動的に接続するWindowsバッチスクリプトがあります。公開秘密鍵認証はありません。ユーザーとパスワードはスクリプト内にあります。
Linuxサーバーには、いくつかのsshdログエントリ(/ var/log/messages)があります。
sshd[7645]: Connection closed by xxx [preauth]
そのようなメッセージの原因は何でしょうか?
「事前認証」はおそらく「事前認証」を意味しますか?
エントリの「closed by」にWindowsクライアントのIPアドレスが含まれていることもあれば、「closed by」にLinuxサーバーのIPアドレスがある場合もあります。メッセージのクライアントIPアドレスとホストIPアドレスの違いを知っている人はいますか?
sshd
サーバーは、-g
オプションに記載されているように、クライアントが特定の時間内に認証を試みない場合、切断されます。
-g login_grace_time
Gives the grace time for clients to authenticate themselves
(default 120 seconds). If the client fails to authenticate
the user within this many seconds, the server disconnects
and exits. A value of zero indicates no limit.
したがって、このメッセージのログにサーバーIPが表示される場合、この猶予時間内に認証の試行が発生しなかったため、接続が閉じられたと考えられます。クライアントIPが表示される場合は、ユーザーが認証を試みずにクライアントを閉じた(またはスクリプトを終了した)ことを意味します。
私の場合、sshクライアント側でHost key verification failed.
エラーが発生したときに、これらのメッセージが/ var/log/secureに表示されました。これは、ログイン試行なしで接続が発生するケースの1つです。
私はあなたと非常によく似た問題を抱えていました(私は公開鍵を使用していましたが)。
私の問題は、おそらくあなたの問題が原因であることがわかりました。私のホームディレクトリがNFSマウントであり、selinux(CentOS 7上)がいくつかのエラー(追跡するのが非常に困難でした)をスローしていたためです。修正は簡単ですが。
setsebool -P use_nfs_home_dirs 1
この種のメッセージの別のソースはssh-keyscan
です。サーバーのホストキーを取得し、認証を行わずに切断するだけです。
これらのメッセージの1つのソースは https://sshcheck.com/ であり、sshサーバーの弱点の可能性を示しています。
これらのメッセージのうち約4つが順番に発生します。
私は同じ問題を抱えていました、私はこのようにそれを解決しました:
Sshサーバーで、コメントを外してyesに/ etc/ssh/sshd_configに次の値を入力します
RSAAuthentication yes
PubkeyAuthentication yes
その後:
Sudo service sshd restart
iptables
INPUTルールがDROPだったため、同じ状況に遭遇しましたが、ansibleホストをACCEPTしましたが、ルールiptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
がありません
エラーログ"Nov 3 01:34:50 debian sshd[29378]: Connection closed by 10.17.64.13 [preauth]"
は、コマンド"/var/log/auth.log"
がansible Hostで実行された後、クライアントマシンのansible all -m ping
に書き込まれました。
Pingパケットがクライアントによって受信されたが、ansibleホストに返されなかったためです。
私の場合、私のマシンでDoS攻撃が行われています。サーバーが同時に開くことができるファイルの制限に達し、authorized_keys
ファイルを開いて自分の身元を確認できませんでした。
dmesg
のVFS: file-max limit XXXXX reached
メッセージが、ようやくログインに成功した後、問題を通知するように見えました。