キーは受け入れられますが、SSH接続はパスワードを要求します


12

SSHキーが受け入れられているように見えても、パスワードの入力を求められます。私が知る限り、以下のログの「サーバーはキーを受け入れます:pkalg ssh-rsa blen 277」という行は、キーが受け入れられたことを意味します。

デバッグログは次のとおりです。

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/sam/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp <<HASH REDACTED>>
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/sam/.ssh/id_dsa
debug1: Trying private key: /home/sam/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: keyboard-interactive
debug2: userauth_kbdint
debug2: we sent a keyboard-interactive packet, wait for reply
debug2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 1

SSHの問題を抱えている私が見つけたすべての人は、私が見ている以前の時点で失敗します。

回答:


11

秘密鍵は間違いなく受け入れられず、試行されただけです。SSHキーベースの認証が失敗する方法はいくつかありますが、ログはそれほど素晴らしいものではないので、この特定の問題をデバッグすることは私の個人的な問題の1つです。通常、エラーは次のいずれかの状況の結果であることがわかりました。

  • あなたの~/.ssh/authorized_keysファイルは、あまりにも開いています。あなた自身の保護のためにあなた自身sshdからあなたを保護しようとします。認証されたキーファイルのアクセス許可があれば、認証に失敗します。を実行しますchmod -R go-rwx ~/.ssh
  • の公開鍵の~/.ssh/authorized_keys形式が正しくありません。これは多くの問題の結果である可能性がありますが、最も一般的なのはコピーペーストの問題です。一部の端末では、画面間でコピー/貼り付けを行うと、行の折り返しが新しい行として解釈されます。authorized_keysファイル内の各エントリは1行でなければなりません。これを確認するには、ターミナルエミュレータのサイズを変更して、ブレークがあるかどうかを確認し、出力をそこにwc -l ~/.ssh/authorized_keysあるべきキーの数と比較するか、最適な方法を比較します。各キーが1行であることを確認してください。

7

貼り付けたssh -v出力は、キーを使用しようとしたが機能しないことを示唆していたため、キーボードインタラクティブに移行しました。

接続しているサーバーの認証ログを確認しましたか?(たとえば、/ var / log / auth.log)。リモートエンドでのセットアップが正しくない場合、たとえば権限が間違っている場合、ssh -v(または-vvまたは-vvv)はこれを通知しませんが、sshdによってログに記録されます。


/var/log/auth.logには、「認証が拒否されました:ディレクトリ/ rootの所有権またはモードが間違っています」
-kevlar1818

5

私の場合、ファイル/var/log/authlogは以下を示しました:

[ID 800047 auth.info] Authentication refused: bad ownership or modes for directory 

私は正しい所有権/許可をチェックインしました.sshが、$HOME777の許可がありました。許可さ$HOMEれたsftpに755のアクセス許可を設定します。再度、感謝します。


2

あなたは、サーバーへのアクセスを(直接または別のログインを経由して)持っている場合は、サーバーにログを確認(言う)/var/log/sshdまたは/var/log/secureお使いのシステムに応じて、

通常、~/.ssh/authorized_keysファイルのアクセス権エラーが原因です。誰にも読めないことを確認しますが、決定的には、sshdを実行しているユーザー(場合によってはサービスユーザー)が読めること


1
どのシステムが使用し/var/log/sshdますか?私が知っているシステムは、/var/log/auth.logまたはのいずれかを使用します/var/log/secure
カスペルド

1

~/.ssh/authorized_keysリモートでのアクセス許可が重要です(600私のシステムRHELおよびSolarisの場合)

リモートのホームディレクトリのアクセス許可が重要です(700私のシステムでは)

最後に、sshd別のポートでデバッグモードのリモートマシンで実行すると便利です。

sudo /usr/sbin/sshd -p 5555 -dd

5555ポートの例ですが、変更できます。この点に関する詳細については、http//ubuntuforums.org/archive/index.php/t-2219973.htmlをご覧ください。


0

sshdサービスを使用すると問題があることがわかりました。この問題を回避するには、でsshdサービスを停止し、でコマンドプロンプトからデーモンをservice sshd stop開始しsshdますsudo /usr/sbin/sshd


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.