こんにちは、@Manabu です。
クラウドサービス上のサーバーに対して接続するために、SSHを使用してリモート接続を行うのが一般的です。
SSHで接続したユーザーの権限によっては、操作できないディレクトリもあります。
ルートユーザーでSSH接続できたらな〜
開発中にこう思ったことがある人は少なくないと思います。
今回は、AWSの代表的なサービスであるEC2に対して、rootユーザーでSSH接続する方法について紹介します。
簡単に設定できますので、ぜひ参考にして下さい。
はじめに
※この設定は推奨されていません。
※セキュリティ面で心配のある方には、この方法はおすすめできません。
※リスクがあることを理解して、参考にするようにお願いします。
きっかけ
rootユーザーでのSSH接続が必要になる状況は様々ですが、一般的な理由としては、管理上の利便性と操作の自由度が高いというところにあります。
通常、SSH接続を確立すると、最初にログインするユーザーはサーバーの管理アカウント(rootユーザー)ではなく、特権のないユーザー(EC2ならec2-user)としてログインします。
一部のタスクや緊急時の対応など、root権限が必要な場面もありますが、その場合の一般的な流れは、一般ユーザーとしてサーバーにログインした後、必要に応じでroot権限に切り替えるようにされていると思います。
しかし、このプロセスは毎回手動で行う必要があり、同じことを毎回実行することが面倒に感じます。
そのため、rootユーザーで直接SSH接続できるように設定することで、管理作業を効率化できます。
また、ソースコードをVSCodeでSSH接続してrootユーザーで管理するためにも、直接rootユーザーで接続できた方が、ファイルの権限を気にせず操作できるため便利でした。
注意事項
rootユーザーでのSSH接続は一般的に推奨されません。
理由としては、root権限を持ったユーザーがシステムにアクセスすることは、システム全体のセキュリティを脆弱にする可能性があるからです。
誤った操作や不正なアクセスによって、システムが危機にさらされる可能性があったり、AWSだと無駄にサーバーを立てられて知らない間に料金が膨れ上がるなんてこともあります。
そのため、rootユーザーでのSSH接続は慎重に検討し、必要な場合にのみ使用することを強くお勧めします。
手順
SSH接続は、公開鍵認証方式で接続しています。そのため、rootユーザーの公開鍵をec2-user用のpemキーと合うように対応します。
こちらの対応を行うための手順は、以下の二つだけです。
EC2にec2-userでログイン
以下のようなコマンドでEC2にログインします。
ssh -i "test.pem" ec2-user@ec2-54-65-235-109.ap-northeast-1.compute.amazonaws.com
test.pemキーとec2-userの公開鍵が一致することで、SSH接続することができます。
rootユーザーのauthorized_keysファイルを変更
秘密鍵である、test.pemとrootユーザーの公開鍵が一致すれば良いので、ec2-userからコピーします。
sudo cp /home/ec2-user/.ssh/authorized_keys /root/.ssh/authorized_keys
このコマンドで、ログインするときのpemキーとrootユーザーの公開鍵が一致し、SSH接続ができるようになります。
rootでログインしてみる
rootユーザーでSSH接続出来るようになっていますので確認します。
Desktop % ssh -i "test.pem" root@ec2-54-65-235-109.ap-northeast-1.compute.amazonaws.com
Last login: Sat Feb 10 13:27:06 2024
, #_
~\_ ####_ Amazon Linux 2
~~ \_#####\
~~ \###| AL2 End of Life is 2025-06-30.
~~ \#/ ___
~~ V~' '->
~~~ / A newer version of Amazon Linux is available!
~~._. _/
_/ _/ Amazon Linux 2023, GA and supported until 2028-03-15.
_/m/' https://aws.amazon.com/linux/amazon-linux-2023/
できました。
最後に
rootユーザーでのSSH接続は、サーバーでの管理作業を効率化する一方で、システム全体のセキュリティに関わる重要な問題でもあります。
可能な限り、必要最小限の権限で作業を行い、セキュリティを最大限に保護するための対策を講じることが重要です。
また、これらの設定変更後にAMIを取得し、Auto Scalingでインスタンスを起動し直したりすると、この設定は元に戻ります。必要な場合は適宜設定し直すようにしましょう。
最後に、本記事を使ったことで効率的に作業ができるようになることを望んでおります。