PLINK(パテ)を介してLinuxサーバーに自動的に接続するWindowsバッチスクリプトがあります。公開鍵秘密鍵認証はなく、ユーザーとパスワードの両方がスクリプトにあります。
Linuxサーバーには、複数のsshdログエントリ(/var/log/messages)があります。
sshd[7645]: Connection closed by xxx [preauth]
そのようなメッセージが出てくるのはなぜですか?
「preauth」は「事前認証」を意味しますか?
場合によっては、エントリの「closer」にWindowsクライアントのIPアドレスがあり、時には「closer」にLinuxサーバーのIPアドレスがあることがあります。メッセージのクライアントIPアドレスとホストIPアドレスの違いを知っている人はいますか?
答え1
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が表示されると、ユーザーは認証を試みずにクライアントを閉じたか、スクリプトが終了したことを意味します。
答え2
Host key verification failed.
私の場合、sshクライアントでエラーが発生したときにこれらのメッセージが/var/log/secureに表示されました。これは、ログインを試みずに接続が確立される状況の1つです。
答え3
私はあなたと非常に似た問題に直面しました(公開鍵を使用していましたが)。
私の問題(おそらくあなたの問題も同様)は、私のホームディレクトリがNFSマウントであり、selinux(CentOS 7)でいくつかのエラー(追跡が困難)が発生したためです。しかし、修正は簡単です。
setsebool -P use_nfs_home_dirs 1
答え4
そのようなニュースのもう一つのソースはですssh-keyscan
。サーバーのホストキーのみを取得し、認証なしで接続を切断します。