SSH を使用して AWS EC2 の新しいユーザーを設定する

SSH を使用して AWS EC2 の新しいユーザーを設定する

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

関連情報