EC2 インスタンスを作成しました。インターネットに接続でき、「test_kp.pem」を使用して ubuntu@ip に ssh で接続できます。
新しいユーザーを作成し、 AWS EC2 コンソールでuseradd test-user
新しいキーペアを作成しました。test-user-kp
home/test-user/.sshディレクトリと.ssh/authorized_keysファイルを作成しました。
コマンドを実行しssh-keygen -f test-user-kp.pem -y
、その内容を authorized_keys にコピーしました。また、.ssh と authorized_keys ファイルの権限も修正しました。
ssh -i test-user-kp.pem test-user@ip
今、コマンドを実行しようとしていますが、次のメッセージが表示されて失敗します:
test-user@ip: 権限が拒否されました (公開鍵)。
答え1
これにはいくつかの可能性があります。
あなたの投稿を読んで、test-user-pk.pemの内容を~ssh/authorized_keysにコピーしたのではないかと思います。. もしこれをやってしまったら、それが問題です。そのファイルは秘密鍵です。公開鍵は test-user-pk.pem.pub にあります。秘密鍵の形式は公開鍵とはまったく異なり、------BEGIN OPENSSH PRIVATE KEY------ で始まり、複数の行にまたがっているため、検証は簡単です。3 つのフィールドを持つ 1 つの長い行 (おそらく「ssh-rsa」で始まり、ユーザー名@ホスト名で終わり、その中間に公開鍵がある) ではありません。
さもないと -
一般的には、SSH に「-v」フラグを渡してユーザーとして ssh し、クライアントが見ているものをログに記録し、この操作中にサーバーのログ ファイルも確認します。
これをさらに一歩進めて、サーバーの別のポートで sshd の 2 番目のインスタンスを起動し、それを切断せずに、接続を試行したときに何が起こるかを確認することもできます。
検討すべき具体的な可能性としては、
SeLinux がインスタンスを壊していますか (つまり、ファイル権限など)。私は以前にもこれを経験しましたが、面倒です。audit.log ファイルはこれが当てはまるかどうかを示します。当てはまる場合は、一時的に selinux を無効にすると、この問題を排除できる可能性があります。(私は以前にこれを経験しましたが、Ubuntu ボックスではそうではありませんでした)
/etc/ssh/sshd_conf にネゴシエーションを妨げる何か (AllowUsers リストなど) があります。
ユーザーのホームディレクトリの権限の問題でしょうか?
キーを追加してしまったなど、何かばかげたことでしょうか。
答え2
私はルートとして「authorized_keys」を作成しました。これを修正するために、
sudo chown テストユーザー authorized_keys