SSHキーが受け入れられたように見えても、パスワードの入力を求められます。私の知る限り、以下のログにある「Server accepts key: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の問題が発生していることがわかったすべての人が、私が目にしている以前の時点で失敗しました。
あなたの秘密鍵は確かに受け入れられません、それは試みられただけです。 SSHキーベースの認証が失敗する可能性のある方法はいくつかあり、ロギングはそれほど優れていないため、この特定の問題のデバッグは私の個人的な問題の1つです。エラーは通常であり、次のいずれかの状況の結果であることがわかりました。
~/.ssh/authorized_keys
ファイルが開きすぎます。あなた自身の保護のためにsshd
はあなたをあなた自身から保護しようとします。許可されたキーファイルの権限がある場合、認証に失敗します。 chmod -R go-rwx ~/.ssh
を実行します。~/.ssh/authorized_keys
の公開鍵の形式が正しくありません。これは多くの問題の結果である可能性がありますが、最も一般的なのはコピーペーストの問題です。一部の端末では、画面間でコピー/貼り付けを行うと、行の折り返しが新しい行として解釈されます。 authorized_keys
ファイルの各エントリmustは1行です。これを確認するには、ターミナルエミュレータのサイズを変更し、ブレークがあるかどうかを確認し、wc -l ~/.ssh/authorized_keys
の出力と、そこにあるべきキーの数を比較します。 、またはあなたにとって最も効果的なものは何でも。各キーが1行であることを確認してください。問題はありません。貼り付けたssh -v出力は、キーを使用しようとしたが機能しないことを示唆しているため、キーボードインタラクティブに移行しました。
接続しているサーバーの認証ログを確認しましたか? (例:/var/log/auth.log)。リモートエンドでの設定が正しくない場合(たとえば、権限が間違っている場合)、ssh -v(または-vvまたは-vvv)はこれを通知しませんが、sshdによってログに記録されます。
私の場合、ファイル/var/log/authlog
は次のことを示しています:
[ID 800047 auth.info] Authentication refused: bad ownership or modes for directory
.ssh
で正しい所有権/権限を確認しましたが、$HOME
には777の権限がありました。 $HOME
に755の権限を設定すると、sftpが機能するようになりました。再度、感謝します。
サーバーに(直接または別のログインを介して)アクセスできる場合は、サーバーのログインを確認します(たとえば)/var/log/sshd
または/var/log/secure
システムに応じて
通常は、~/.ssh/authorized_keys
ファイルの権限エラーが原因です。誰でも読み取り可能ではないことを確認してください。ただし、sshdを実行しているユーザー(場合によってはサービスユーザー)が読み取り可能であることを確認してください
リモートでの~/.ssh/authorized_keys
の権限は重要です(私のシステムではRHELおよびSolarisの場合は600
)
リモートでのホームディレクトリの権限は重要です(私のシステムでは700
)
最後に、別のポートでデバッグモードのリモートマシンでsshd
を実行すると便利です。
Sudo /usr/sbin/sshd -p 5555 -dd
5555
はポートの例であり、変更できます。この点に関する詳細については、以下を参照してください。 http://ubuntuforums.org/archive/index.php/t-2219973.html
sshd
サービスを使用すると問題が発生することがわかりました。この問題を回避するには、service sshd stop
を使用してsshd
サービスを停止し、Sudo /usr/sbin/sshd
を使用してコマンドプロンプトからsshd
デーモンを開始します。
試す
/sbin/restorecon -r /root/.ssh
権限の設定で起こりうる問題。