はじめに
インプルの矢島です。
突然ですが、あなたは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