AWSのEC2(RHEL 7.3)へ新規の一般ユーザで公開鍵暗号方式でSSH接続する設定
目次
概要
AWSのEC2インスタンスは初期状態では ec2-user のみSSH接続できるようになっています。 ec2-user はシステム管理者のみで利用したいので、その他開発者が利用するための新規ユーザを作成することにします。 新規ユーザの名称は user01 とし、ec2-user と同様に公開鍵暗号方式でSSH接続するよう設定します。 使用するキーペアは ec2-user と user01 で別のものを使用します。
構成
想定環境
今回の検証用サーバ環境としてAWS(Amazon Web Services)のEC2を利用しました。 サーバのスペックは以下のとおりです。
項目 | 内容 |
---|---|
インスタンスタイプ | t2.micro |
vCPU | 1 |
メモリ | 1GiB |
ディスク | SSD 10GiB |
リージョン | オレゴン |
価格 | 無料 |
サーバ構成
OSバージョン
Red Hat Enterprise Linux 7.3 x86_64
ソフトウェア・パッケージ一覧
- openssl-1.0.1e-60.el7.x86_64
- openssh-6.6.1p1-31.el7.x86_64
- openssh-server-6.6.1p1-31.el7.x86_64
クライアント構成
OSバージョン
Windows 10 Pro 64bit
ソフトウェア・パッケージ一覧
- Tera Term 4.74
環境構築
サーバ設定
グループとユーザの追加
AWSのEC2インスタンスに新規の一般ユーザとユーザが所属するグループを作成します。 今回は user01(UID: 20001) ユーザと user01(GID: 20001) グループを作成します。
$ sudo su - Last login: Sat Jun 10 13:42:41 EDT 2017 on pts/0 # groupadd -g 20001 user01 ←グループの作成 # tail -n 1 /etc/group user01:x:20001: # useradd -u 20001 -g 20001 user01 ←ユーザの作成 # tail -n 1 /etc/passwd user01:x:20001:20001::/home/user01:/bin/bash
秘密鍵と公開鍵のキーペアの作成
公開鍵暗号方式でSSH接続するための秘密鍵と公開鍵のキーペアを作成します。 このキーペアは user01 ユーザ用に使用します。 公開鍵は authorized_keys に登録し、秘密鍵はPCにダウンロードして使用します。
# su - user01 $ mkdir -m 700 .ssh $ ls -ld .ssh drwx------ 2 user01 user01 6 Jun 13 12:14 .ssh $ cd .ssh/ $ ssh-keygen -t rsa -C "hoge@example.com" Generating public/private rsa key pair. Enter file in which to save the key (/home/user01/.ssh/id_rsa): ←[Enter]キーを押す Enter passphrase (empty for no passphrase): ←[Enter]キーを押す Enter same passphrase again: ←[Enter]キーを押す Your identification has been saved in /home/user01/.ssh/id_rsa. Your public key has been saved in /home/user01/.ssh/id_rsa.pub. The key fingerprint is: fd:44:ea:75:9e:d3:4b:2b:74:5d:50:94:83:3d:e7:8b user01@example.com The key's randomart image is: +--[ RSA 2048]----+ | oo+| | ..=.| | . o+| | . o o| | S o o o +| | . + E =.| | . o =..| | ...o| | .o | +-----------------+ $ ls -l total 8 -rw------- 1 user01 user01 1675 Jun 13 12:16 id_rsa ←秘密鍵 -rw-r--r-- 1 user01 user01 398 Jun 13 12:16 id_rsa.pub ←公開鍵 $ cp -piv id_rsa.pub authorized_keys ‘id_rsa.pub’ -> ‘authorized_keys’ $ ls -l total 12 -rw-r--r-- 1 user01 user01 398 Jun 13 12:16 authorized_keys -rw------- 1 user01 user01 1675 Jun 13 12:16 id_rsa -rw-r--r-- 1 user01 user01 398 Jun 13 12:16 id_rsa.pub $ exit logout # exit logout
sudo設定
公開鍵暗号方式でのSSH接続とは直接関係しませんが、 作成したユーザが su および sudo を実行できるようにしておきます。
# visudo
※ファイルの末尾に追加※ ec2-user ALL=(ALL) NOPASSWD: ALL user01 ALL=(ALL) ALL ←この行を追加
クライアント設定
サーバ上で作成した秘密鍵である id_rsa ファイルはテキストファイルです。 ファイル自体をPCにダウンロードするか、ファイルをエディタで開いて書かれている文字列すべてをコピーして PC上に同じ内容のファイルを作成することで、PCに秘密鍵ファイルを準備します。 秘密鍵のファイル名は任意です。PC上では id_rsa ではなく、接続先を特定できるような名称にして保管することをお勧めします。 サンプルとして秘密鍵のファイルは以下のような内容になっています。
※あくまで例です。そのまま使うことはできません※
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEBsyB/dm+vVeZdj1tP2mmHcUzkRRYuhgkwgumHEYhFhwnFVbCS
QeIclQHtljSU0FtYSmefgxlfVgBDQijF+RZTZnWxO2z1IDCJLJZv8opd4JLpu9/o
qfXXVaxBDc3s8+pSAibciZQ1FHZENGPd68a7yQxOsYOs+1aTWINcEKx0wMMkTVAH
uqsrcXJixArCpGgXgM4fXaNPKOkIO1VTPvbCPG2SKgUvMnw3Nr/U1Wz7dVoBtIFz
0NSGGbPkdw/EamXMJRTNWFTuPvDVnPZS2tZqkEIRLvQv4FCDZm7b9fnpBtiads8E
1M66qWezuY+KUNrxR9EzUvNw5nViDvqb3i1aqwIDAQABAoIBAD94hnG7BU/UvtYr
LtJfjkSRUFlCkN3hp/TbNqb5uFkvFyNT259ItYP/GOaeXxStKU3EBft4JBXfJfXt
aKjoRkkJ7vD1nK35RMHt1GEGslj+9Z9Cqbh/ifure6mejBcUilaE2qRNRbmoZmaB
9IK0+pk0qTWxSLwOY0t70EWANiaO5xN/icYmjwi8MmUH6r1EbocX9vjvdQn6ghnD
GZax1ZoqYTY4jWhLGnXisSXKK0jE+jZPA4QeyPGdCqhfcR6+MFJt/Q2Ier6vdMTT
LxEOO7YlNOgwpc7/gQhCvryuBQXhxv+pv7upd3kjKVj6kzHqqgSrczv14LC6AXSE
gYdH7RECgYEA3jl8X5E3OCbAUWAQSqqn5I3l+DK1Nsv2oTJVSOLqEVLtztMdIRAs
KfQEHIr28x7jjYmJK5Ay3r2FPjzKbk66xmyyj4oFfG5w9+GA6tR/CJON9gS0VXtn
e1iRNvh6o6IZlIag2ruamOM83EhS/asTDYNqTVG8ttWR1l95A+x6rt8CgYEAzloh
mtOHKcfCuUuGDrSByIGNZwfvX84KmSAX4a7j9wwGys6hSPiR8fRLrqwvgtOPfVNe
1GZDoQzJjlV/xPEOiRkJ/R9GpPP+oF6SF5GaxnS5GXOySFRnY3fPJd4SARFUXfXQ
/vqcGRpAa9ikjFVfg9JGqk4a6sNyyjVFsD5SKbUCgYAnXhO0cmtP3T2QrO317EmV
6bVlxMXpkTR91gbZxKkmrIRIcYnlg5HvVLUtwUiCRWSWfFj6iK8aWoSyQ96wr+3S
nQr89ryGEKKepypJb5+Zi1pIzQiNZDEu3r/K9zXyqxLRBxCT70wx7X+onn9lRNs5
N6CrVeGSmj8dtQghM9GADQKBgQCYPidM84Nlb9xamT3u235lUC/jNBeHt6O61dLI
zx+hxV29g3W7QKlsubCczqy++ReEf14XltuOlsCeIraBttfijnawKcCVMG9MInnm
qaZnhPaLsLB4bM1atao/ZfgikYaNTC9F79/7JUMiTlQYtWQi/aDlRXrWehzW0zb3
MQOtgQKBgAVLZWPr4Q4B6rpbljZorsmJfP0dpftY+1op+KLkITBJGYu3eGw0OGzw
K7wIlLeBPqjcmbFWrN3/i33bLefOy+8234aKZSjIaZDuAc/NfXUPEliDYDfcTpAT
NnuWZvDOMmD/iF9ubRx/if06UbwNE005xepKwIaaW1tSDIDYIemt
-----END RSA PRIVATE KEY-----
利用方法
TeraTermでEC2インスタンスへ接続する際に、[User name]にユーザ名、 [Use RSA/DSA/ECDSA key to log in]にPC上の秘密鍵のフルパスを指定して[OK]ボタンをクリック することで接続することができます。[Passphrase]は空欄のままで構いません。