前提
- EC2でインスタンスを立てて.pemをダウンロードした(foo.pemとする)
- Elastic IPを割り当てた(12.345.678.910とする)
ローカルPCでssh用の鍵を作成して、公開鍵をec2-userのホームにコピー
$ ssh-keygen -f ~/.ssh/id_rsa_hoge
$ scp -i foo.pem ~/.ssh/id_rsa_hoge.pub ec2-user@12.345.678.910:~/
id_rsa_hoge.pub
EC2にSSH接続して公開鍵がコピーされているか確認
$ ssh -i foo.pem ec2-user@12.345.678.910
Last login: Sun Aug 14 08:47:20 2016 from kd175130114177.ppp-bb.dion.ne.jp
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2016.03-release-notes/
15 package(s) needed for security, out of 20 available
Run "sudo yum update" to apply all updates.
[ec2-user@ ~]$ ls
id_rsa_hoge.pub
ユーザーを作成して公開鍵を登録
rootユーザーになり、ユーザーを作成、権限を与える
[ec2-user@ ~]$ sudo su -
[root@ ~]# adduser hoge
[root@ ~]# echo "hoge ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/hoge
[root@ ~]# chmod 440 /etc/sudoers.d/hoge
コピーした鍵を作成したユーザーの.ssh/
以下に置く
[root@ ~]# su - hoge
[hoge@ ~]$ mkdir .ssh
[hoge@ ~]$ sudo mv /home/ec2-user/id_rsa_hoge.pub .ssh/authorized_keys
[hoge@ ~]$ sudo chown hoge .ssh/authorized_keys
[hoge@ ~]$ sudo chmod 600 .ssh/authorized_keys
[hoge@ ~]$ sudo chmod 700 .ssh/
SSHでログイン
ローカルPCの~/.ssh/config
に以下を追加
Host AAA
User hoge
HostName 12.345.678.910
IdentityFile ~/.ssh/id_rsa_hoge
IdentitiesOnly yes
これでSSHでログインできる
ssh AAA
Last login: Sun Aug 14 08:47:20 2016 from kd175130114177.ppp-bb.dion.ne.jp
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2016.03-release-notes/
15 package(s) needed for security, out of 20 available
Run "sudo yum update" to apply all updates.
[hoge@ ~]$
ちなみに新しく鍵を作らなくてもec2-userのauthorized_keyをコピー、~.pemを秘密鍵として使っても可能ですが、自前で作った方がそれっぽいのでそうしています
新しいユーザーを追加するとき
管理する人が増えたとかで他の人にもサーバーに入ってもらう必要があるとき
ローカルPCで鍵を作ってもらう
$ ssh-keygen -f ~/.ssh/hoge_rsa # 鍵の名前は任意
$ cat ~/.ssh/hoge_rsa.pub
公開鍵の内容をサーバーにアクセスできる人に共有する
ユーザーを作って公開鍵の内容を登録する
[user@~]$ sudo su -
[root@~]# adduser hoge
[root@~]# echo "hoge ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/hoge
[root@~]# chmod 440 /etc/sudoers.d/hoge
[root@~]# mkdir /home/hoge/.ssh
[root@~]# echo "公開鍵の内容" > /home/hoge/.ssh/authorized_keys
ローカルで~/.ssh/config
を編集
完了