AWSその他

【EC2/SSH】あなたは複数の人でpenキーを使い回していないか?ユーザーごとに鍵をEC2に登録しよう(初心者向け)

AWS
この記事は約4分で読めます。

はじめに

インプルの矢島です。

突然ですが、あなたはEC2のpemキーを使い回していませんか?

使い回した先のユーザーが退職したり、チームから外れた時の管理はどうなるでしょうか。

pemキーを使いましているとアクセス制限など管理が難しくなり、セキュリティ的によろしくないですよね。

今回はユーザーごとに鍵を設定して、SSHアクセスできるようにしたいと思います。

やること

管理者アカウントから新規ユーザーの公開鍵をEC2に登録して、新規ユーザーからアクセスする

  • 新規ユーザーが鍵を作成して、公開鍵を管理者アカウントに送る
  • 管理者アカウントがサーバーにてLinuxのユーザーを作成して、鍵を登録
  • 新規ユーザーからsshアクセスできるように確認する

前提

  • EC2は起動済み(Amazon Linux2)
  • 管理者アカウントからはEC2にsshアクセス可能

新規ユーザーが鍵を作成して、公開鍵を管理者アカウントに送る

新規ユーザーで鍵を作成するため以下コマンドを実行します。

ssh-keygen -t rsa -f ~/.ssh/test_ec2_rsa

ssh-keygenコマンドはssh鍵を生成するコマンドです。オプションの-tは暗号化方式を指定します。RSAはデフォルトですが、なんとなく指定しています。-fはファイル名を指定しています。

コマンドを実行すると、パスフレーズが聞かれますが、念の為設定しておきます。

コマンドが成功すると、.ssh/test_ec2_rsa.pubと.ssh/test_ec2_rsaの二つのキーが生成されます。拡張子の.pubが公開鍵で、ついていない方が秘密鍵です。

秘密鍵の権限を変更しておきましょう

chmod 600 .ssh/test_ec2_rsa

生成した公開鍵は安全な方法で管理者に送っておきましょう。

管理者アカウントがサーバーにてLinuxのユーザーを作成して、鍵を登録

管理者はキーを受け取ったら、サーバーに転送します。(ipアドレスの部分だけ変えておいてください)

scp -i .ssh/test_key.pem .ssh/test_ec2_rsa.pub ec2-user@<ipアドレス>:~/

次にサーバーにアクセスします。

ssh -i .ssh/test_key.pem ec2-user@<ipアドレス>

ユーザーを作成します。

sudo adduser test-user

アクセス後にユーザーが生成されたか確認しましょう。

cat /etc/passwd
test-user:x:1001:1001::/home/test-user:/bin/bash

上記のようにtest-userが作成されたのが確認できます。

次に作成したユーザーにパスワードをつけましょう

sudo passwd test-user

公開鍵をtest-userのディレクトリに移動して、権限を変えていきます。

sudo mv test_ec2_rsa.pub /home/test-user/.ssh/authorized_keys
sudo chown -R test-user /home/test-user/.ssh
sudo chmod 700 /home/test-user/.ssh
sudo chmod 600 /home/test-user/.ssh/authorized_keys

authorized_keysは公開鍵を管理するファイルです。

新規ユーザーからsshアクセスできるように確認する

早速新規ユーザーのターミナルから以下のようにアクセスしましょう。

ssh -i .ssh/test_ec2_rsa test-user@<ipアドレス>

テストフレーズが聞かれますので、ssh-keygenした時に設定したテストフレーズを入力してください。

ssh成功できればOKですね。


test-userにsudo権限をつけたい場合はこちらを確認ください。(https://qiita.com/Fledgling_engineer/items/ae151cfee2000b885485)

参考までにsudo 権限を付与する方法。/etc/sudoersを確認すると、wheelグループにsudo権限がついていたのでこのグループをtest-userにつけます。

# ec2-userでログインする
sudo su
usermod -aG test-user,wheel test-user
groups test-user

さいごに

いかがでしたでしょうか?サーバーへのアクセスは十分適切な状態で管理しましょう。

ただ、pemキーを作成して、22番ポートを開けなくても、SSMのSession Managerを使用すれば、マネコンからサーバーにアクセスすることができますので、そちらの使用も検討してみても良いかもしれません。

最後まで読んでいただきありがとうございました。

参考

  • https://qiita.com/kota9/items/d54a70b542da09b0c099