SSH が SSH 鍵で認証されない

SSH が SSH 鍵で認証されない

SSHキーを介して自分のサーバーにログインできません。

ssh-copy-idを使用して公開鍵name.pubを自分のサーバーにコピーします。その後、を実行すると、ssh -i name.key root@serverキーを介して認証するのではなく、サーバーのパスワードを入力する必要があります。

カスタムポートでデバッグモードsshdを実行すると、出力は次のようになります。ここ

いくつかの質問(スパムとしてマークされ、削除された)を確認しましたが、資格の問題に対する回答が許可されましたが、そのような問題はないようです。私のデスクトップは、鍵があまりにも開いていると文句を言わず、サーバーの.sshフォルダとAuthorized_keysにはそれぞれ700と600の権限があります。

最後のポイントは、キーが次のように生成され、ssh-keygen -m pem公開キーが次のものを使用してPEM形式に変更されたことです。ssh-keygen -f name.key -e -m pem > name.pub

SSHが私のSSHキーで私を認証できないのはなぜですか。この問題を解決するにはどうすればよいですか?

答え1

公開鍵をPEM形式に変換するために使用した方法がssh-keygen -f name.key -e -m pem > name.pub問題を引き起こしたようです。公開鍵をデフォルト形式にしておくと、ssh-keygenその鍵で正常に認証できます。

答え2

次に、を実行したら、ssh -i name.key root@serverサーバーのパスワードを入力する必要があります。

ここで何が起こっているのかについての私の推測は、何らかの理由でキー認証が機能せずに表示されるパスワードプロンプトが代替であるということです。

ssh次のコマンドを実行してキーを強制的に使用できます。

ssh -vv -o "IdentitiesOnly=yes" -i <private key filename> <hostname>

この場合、-vv鍵認証が失敗した理由を示すデバッグ出力も提供されます。

PasswordAuthentication=no上記のプロパティではなく、クライアントIdentitiesOnlyオプションでパスワード認証を無効にしてみることもできます。

鍵認証が機能していることを確認したら、認証にパスワードを使用する可能性を完全に無効にできます。これはPasswordAuthentication no設定を通じてグローバルに実行できます/etc/ssh/sshd_config。鍵ベースの認証が機能していることを確認する前に、これを行わないでください。これは、サーバーにアクセスする他の方法(仮想コンソールなど)がない場合、サーバーがロックされる可能性があるためです。

発生する問題の一般的な原因は、無効なユーザーを認証しようとすることです。たとえば、Ubuntuシステムは通常、クラウド設定の一部として追加されたSSHキーをユーザーに追加しますが、ルートには追加しませんubuntuauthorized_keys

関連情報