Amazon EC2インスタンス上のクラウドで実行されているアプリケーションのインスタンスがあり、ローカルUbuntuから接続する必要があります。ローカルUbuntuとラップトップでは問題なく動作しますPermission denied (publickey).
。違うローカル Ubuntu。
1 つのインスタンスへの IP アクセスが制限されている Amazon EC2 のセキュリティ設定に問題があるか、証明書を再生成する必要があるのではないかと考えています。
権限拒否エラーの解決策を知っている人はいますか?
答え1
このような状況で最初に行うべきことは、-v
のオプションを使用してssh
、どのタイプの認証が試行され、結果がどうなるかを確認することです。これで状況が分かりましたか?
質問の更新で、「別のローカル Ubuntu 上」と書かれています。SSH 秘密鍵を他のマシンにコピーしましたか?
答え2
明示的に言及されていないが、sshdはデフォルトでauthorized_keys
ファイルの権限を非常に厳しく設定している。authorized_keys
書き込み可能ユーザー以外の人や書き込み可能にできるユーザー以外の誰かが認証を拒否した場合、認証は拒否されます(sshdが に設定されていない場合StrictModes no
)
「書き込み可能にできる」とは、親ディレクトリのいずれかがユーザー以外のユーザーに対して書き込み可能である場合、それらのディレクトリを変更することを許可されているユーザーは、authorized_keys を変更/置換できるように権限を変更し始めることができることを意味します。
さらに、/home/username/.ssh
ディレクトリがユーザーによって所有されておらず、ユーザーにキーを読み取る権限がない場合は、問題が発生する可能性があります。
drwxr-xr-x 7 jane jane 4096 Jan 22 02:10 /home/jane
drwx------ 2 root root 4096 Jan 22 03:28 /home/jane/.ssh
ジェーンはファイルの所有者ではないことに注意してください.ssh
。これを修正するには
chown -R jane:jane /home/jane/.ssh
こうした種類のファイルシステム権限の問題は では表示されずssh -v
、ログ レベルを DEBUG に設定するまで sshd ログにも表示されません (!)。
- 編集します
/etc/ssh/sshd_config
。どこかに次の行を読み込む必要がありますLogLevel DEBUG
。ディストリビューションによって提供されるメカニズムを使用して、SSH サーバーをリロードします。(service sshd reload
RHEL/CentOS/Scientific の場合) 正常なリロードでは、既存のセッションは切断されません。 - もう一度認証をお試しください。
- 認証機能のログがどこに保存されるかを調べて、それを読みます。(記憶が正しければ、
/var/log/auth.log
Debian ベースのディストリビューション、/var/log/secure
RHEL/CentOS/Scientific の場合)
ファイルシステムの権限エラーを含むデバッグ出力により、何が問題なのかを判別しやすくなります。/etc/ssh/sshd_config
完了したら、変更を元に戻すことをお忘れなく。
答え3
オプションを追加するのを忘れたため、このエラーが発生しました-l
。ローカルのユーザー名がリモート システムのものと同じではありませんでした。
これはあなたの質問への答えではありませんが、私は自分の問題に対する答えを探しにここに来ました。
答え4
より読みやすいのはssh -v
(もちろん私の意見ですが) ですtail -f /var/log/auth.log
。これは、接続しようとしているサーバーで、接続を試行中に実行する必要があります。プレーンテキストでエラーが表示されます。
これは私の問題を解決するのに役立ちました:
xx.yy.com のユーザー [ユーザー名] は、AllowGroups にユーザーのグループがリストされていないため許可されません。