用途
SSH SCPでファイル転送を行いたいのに、root権限のディレクトリー宛てなので一般ユーザーではファイル転送が出来ない時など、rootユーザーでログインしてファイル転送したい。
はじめに
デフォルトの状態ではEC2インスタンスにrootユーザーでSSHログインする事は出来ない。
仮に、 ユーザー:root、 KEY:ec2-userの秘密鍵
でSSHを試みると、
Please login as the user "ec2-user" rather than the user "root".
と表示され、ログインが出来ない。
rootユーザーでSSHする方法
まず、rootの公開鍵を確認してみる。
ec2-userでログインを行い、 sudo su -
コマンドでrootユーザーに切り替え、公開鍵であるauthorized_keys
をcatする。
[root@aether ~]# cat /root/.ssh/authorized_keys
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ec2-user\" rather than the user \"root\".';echo;sleep 10" ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCiris4cDE6BLqS5P・・・・・・
次にec2-userの公開鍵を確認してみる。
[root@aether ~]# cat /home/ec2-user/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCiris4cDE6BLqS5P・・・・・・
この2つを見比べると、rootの公開鍵は文字の ssh-rsa
以降、ec2-userの公開鍵と同じ文字列であることがわかる。
つまり、ssh-rsa
までの文字列
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="echo 'Please login as the user \"ec2-user\" rather than the user \"root\".';echo;sleep 10"
を削除すればec2-userの公開鍵と全く同じになるので、
ユーザー:root、 KEY:ec2-userの秘密鍵
でSSHログイン可能となる。
但し書き
Amazon Linux2では上記方法でrootログイン可能であるが、Amazon Linux1では何故かこれが出来ない。
(何故か分かる人いたら教えて頂けると助かります)