突然、「サーバーがキーを拒否しました」というエラーのため、CentOS 8サーバーにSSHとして接続できませんでした。

突然、「サーバーがキーを拒否しました」というエラーのため、CentOS 8サーバーにSSHとして接続できませんでした。

SSH キーを使用して数人のユーザーで CentOS 8 サーバーを設定しましたが、数日前、現在どのユーザーともログインできませんでした。 (ルートログインと同様に、パスワードの確認も無効になります。)

今日はPuTTYとWinSCPを使ってログインしましたが、不気味です。

サーバーが私たちの鍵を拒否しました

これはすべてのユーザーに発生します。sshdキーを拒否するポイントに達したので、明らかに動作しているようです。ログを詳しく見ると、次の内容が表示されます。

サーバーは、publickey、gssapi-keyex、gssapi-with-mic 認証方法を提供します。

sshdこれは正常に動作していることを示します。

Pageantにロードされたキーを使用してログインしようとしましたが、PageantをバイパスしてPuTTYとWinSCPから直接キーをロードしようとしましたが、キーはまだ拒否されました。はい、正しいキーで変更されていません。

偶然にバックアップアプリケーションを実行していたので、サーバー上のファイルに何らかの変更が発生したことを確認できました。この.ssh/authorized_keysファイルは変更されていないことを確認できます。いいえsshd_config、私もダウンロードして確認してみました。

最後にログインしたのは数日前であり、1つを作成しましたが、dnf updateこれがどのような影響を与えるかはわかりません。

この問題の原因は何ですか?

答え1

問題は/home権限です。私は秘密の疑いを抱いていましたが、どのように問題が発生するのか理解していなかったので、そのアイデアを考慮することを拒否しました。私の記憶には、ディレクトリエントリの処理中に誤ったコマンドを入力した記憶が混乱していますsetfaclACL誤って一つを作りましたが、これにより必要なsetfacl -Rn [...] /home権限がめちゃくちゃになりました。sshd$home/.ssh/authorized_keys

これは、すべてのユーザーがロックされていることを意味します。PasswordAuthenticationに設定すると、Noサーバーに入ることはできません。ではどうやって解決しましたか?バックアップしていただいたAcronisに感謝します。sshd_config数ヶ月前にPasswordAuthentication設定され、postコマンドでYes追加されたときに戻りました。rebootその後、サーバーを再起動してパスワードでログインし、setfacl -b正しい場所からACLを削除すると、すべてが正常に戻りました。

運が良かったが、いくつかの災害シナリオ用に特別に構成されたバックアップがあり、そのうちの1つには長い間古いファイルが必要です。

PS:フレンドリーなアドバイスです。今すぐバックアップ戦略を再確認し、安定したソリューションに投資してください。エンタープライズクラスのバックアップがない場合は、サーバーのハードドライブを新しいサーバーに移動し、Webアプリケーションを復元したり、リカバリモードで起動したり、他の退屈で不確実な方法を試したりするために数日間閉じ込められている可能性があります。

関連情報