0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

同じ認証鍵なのにSSH接続で「認証に失敗しました」と表示されるサーバーがある

Posted at

AWSの学習の一環で踏み台サーバーとprotectedサブネット内にあるサーバーを作成し、踏み台サーバーからSSHポートフォワーディングを実施していました。
それぞれのサーバーには同じ認証鍵を利用しています。

「認証に失敗しました」in Protctedサーバー

踏み台サーバーにはSSH接続できたのですが、なぜかprotectedサブネットのサーバーに接続しようとすると、これが表示され接続できません。

image.png

確認したこと

①protectedサブネット内に配置したインスタンスのキーペアが正しいか
インスタンスの詳細から「起動時に割り当てられたキーペア」を確認

②protectedサブネット内に配置したインスタンスのセキュリティグループのインバウンドルールで、踏み台サーバーからのSSH接続が許可されているか

私の場合はどちらも問題なかったため、次の作戦に移ります。

鍵ファイルのパーミッションを確認したい

パーミッションとは、「秘密鍵ファイルを誰が読み取り・書き込みできるかを制御するアクセス権限」のことを指します。

ここがprotectedサーバーのログインユーザー「ec2-user」のみ許可されていないのでは、という仮説です。

確認手順1-EC2 Instance Connectで接続サーバーに接続

現状protectedサーバーにSSH接続できないので、AWSの「EC2 Instance Connect」を利用しました。

1.AWSコンソール画面より、対象のインスタンスを選択。画面右上の「接続」ボタンをクリック
image.png

2.EC2 Instance Connectタブを開き、「プライベートIPを使用して接続」を選択。その他必須項目を入力し「接続」
image.png

確認手順2-ec2-userの.sshディレクトリと鍵ファイルを確認

EC2 Instance Connectから対象サーバーにアクセスできたら、ec2-userの.sshディレクトリと鍵ファイルを確認し、意図しない場合は修正を行います。

1.ec2-userのホームディレクトリの確認

ls -ld /home/ec2-user'

結果:
drwxr-xr-x. 3 apache apache ・・・

2.ec2-userの.sshディレクトリのパーミッション確認

ls -ld /home/ec2-user/.ssh

結果:
drwxr-xr-x. 2 apache apache・・・

原因

上記の結果から、ec2-userのパーミッションが、ディレクトリの所有者とグループが apache apache になっていました。
ec2-userとしてログインしたい場合、これらのファイルとディレクトリの所有者はec2-userでなければなりません。

また、/home/ec2-userと/home/ec2-user/.sshのどちらもパーミッションが drwxr-xr-x (755) になっていることが分かるのですが、この場合他ユーザーも読み取り、実行権限がある状態になっているようなので、ついでに修正します。

修正

1.所有者をec2-userに変更する

chown -R ec2-user:ec2-user /home/ec2-user

2.パーミッションを厳格にする

# /home/ec2-user ディレクトリを700 に変更
chmod 700 /home/ec2-user

# /home/ec2-user/.ssh ディレクトリを 700 に変更
chmod 700 /home/ec2-user/.ssh

# .ssh/authorized_keys ファイルを 600 に変更
chmod 600 /home/ec2-user/.ssh/authorized_keys

3.最後に修正の確認

ls -ld /home/ec2-user
ls -ld /home/ec2-user/.ssh
ls -l /home/ec2-user/.ssh/authorized_keys

以下になっていればOK

drwx------. 3 ec2-user ec2-user ... /home/ec2-user
drwx------. 2 ec2-user ec2-user ... /home/ec2-user/.ssh
-rw-------. 1 ec2-user ec2-user ... /home/ec2-user/.ssh/authorized_keys

結果

上記でSSH接続ができるようになりました。
通常、この所有者が変わることはなく、なぜ所有者が書き換わったのか不明ですが、ウェブサーバーなどのサービス設定時に誤って/home/ec2-userディレクトリにアクセスし、権限が変更された可能性があるのかな、という推察です。

参考:https://blog.serverworks.co.jp/sshpermission
https://repost.aws/ja/knowledge-center/new-user-accounts-linux-instance

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?