AWS EC2 に SSH 接続する(その2 定義したユーザで)
前回、AWS のインスタンスにビルトインユーザで SSH 接続したけど、さすがにこのままではまずいので、別のユーザで接続できるようにする。
参考(というより丸コピ でし orz...)
サマリー
こんなコトをしているという認識。
EC2インスタンス上でユーザを作成し、sudo 権限を付与する。
SSH 接続のための公開鍵と秘密鍵を作成する
ローカルホストでの作業。
ssh-keygen コマンド*1 を使って RSA のキーを作成します。
以下のコマンドで、RSA キー(公開鍵+秘密鍵)の両方が作成される様子。
$ ssh-keygen -t rsa -C “aws”
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/hoge/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/hoge/.ssh/id_rsa.
Your public key has been saved in /Users/hoge/.ssh/id_rsa.pub.
The key fingerprint is:
(略)
The key's randomart image is:
(略)
キーが作成されている。
$ ls ~/.ssh/
id_rsa id_rsa.pub known_hosts
EC2 インスタンスに公開鍵を配置する
転送する
scp コマンド*2を使用して、転送する
以下のオプションなどを指定している
- キー:firstKey.pem。EC2 インスタンス作成時に生成したキー
- コピー元ファイル:~/.ssh/id_rsa.pub。生成された公開鍵
- ユーザ:ec2-user。root で接続したら、「Please login as the ec2-user user rather than root user.」と言われた。既存のユーザで接続する。
- サーバ:54.213.150.XXX。EC2 の IP アドレス(またはホスト名)
- コピー先パス:/home/ec2-user/。ひとまずここへ。
$ scp -i firstKey.pem ~/.ssh/id_rsa.pub ec2-user@54.213.150.XXX:/home/ec2-user/
http://:title=id_rsa.pub 100% 391 0.4KB/s 00:00
公開鍵を hogeユーザのホームディレクトリ配下に配置する
先ほど作成したユーザでログインする。
su hoge
$ mkdir .ssh
転送した公開鍵を authorized_keys という名前で .sshディレクトリ に 配置する
$ sudo mv /home/ec2-user/id_rsa.pub /home/hoge/.ssh/authorized_keysWe trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.[sudo] password for hoge:
配置された。
$ ls /home/hoge/.ssh/
authorized_keys
公開鍵ファイルのユーザとグループを hoge に変更する。
[hoge@ec2-instance ~]$ sudo chown hoge /home/hoge/.ssh/authorized_keys
[hoge@ec2-instance ~]$ sudo chgrp hoge /home/hoge/.ssh/authorized_keys
パーミッションを 600 に変更する。
[hoge@ec2-instance ~]$ sudo chmod 600 /home/hoge/.ssh/authorized_keys
[hoge@ec2-instance ~]$ sudo chmod 700 /home/hoge/.ssh/