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キーをユーザーに追加しますが、ルートには追加しませんubuntu
。authorized_keys