概要
インスタンスに毎回ログインする際、ユーザ名と鍵 PATH を記載するのが面倒くさいので、設定ファイル (.ssh/config) にログインに必要な情報を記載して、ログイン時のコマンドを省略しようと思います。
はじめに
.ssh/config とは
SSH を利用してインスタンスへログインする際に利用される設定ファイルです。
AWS にログインする際のユーザ名
サーバ OS によって、ログイン時に利用するユーザ名が異なる様です。
サーバ OS | ユーザ名 |
---|---|
Amazon Linux | ec2-user |
RHEL | ec2-user または root |
Ubuntu | ubuntu または root |
Centos | centos |
Fedora | ec2-user |
SUSE | ec2-user または root |
参考:SSH を使用した Linux インスタンスへの接続 - Amazon Elastic Compute Cloud
キーペアの作成
コマンドラインで ssh-keygen を実行する必要はありません。
AWS ではインスタンスを作成したときに、キーペアを作成して(作成した秘密鍵を)ダウンロードする事が出来ます。
一度作成したキーペアはインスタンスを生成する度に使い回すことが可能です。
もし秘密鍵を無くしてしまった場合、既存のキーペアは再ダウンロードできないので、新しく作り直してください。
ログイン方法
SSHコマンドでログイン
ssh -i <鍵 PATH> <ユーザ名>@<ホスト名> のフォーマットでコマンドを実行します。
$ ssh -i amazon_private_key-20160805.pem ec2-user@ec2-00-00-000-000.us-west-2.compute.amazonaws.com
.ssh/config を利用してログイン
設定ファイルの記載内容を確認します。ホスト名や鍵名は自分のものに書き換えてください。
$ cat .ssh/config
Host AWS
HostName ec2-00-00-000-000.us-west-2.compute.amazonaws.com
User ec2-user
IdentityFile amazon_private_key-20160805.pem
設定ファイルに記載しておくと、簡単なコマンドでログインができます。
$ ssh AWS
Last login: Wed Nov 23 06:38:46 2016 from aa200000000000000000.userreverse.dion.ne.jp
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2016.09-release-notes/
その他
ダウンロードした秘密鍵を他のフォルダに移動したりする事があると思います。
秘密鍵の Permission は 600 じゃないといけないので注意してください。
Owner(所有者) だけが Read&Write できる権限です。
# Permission が悪いと以下のようなエラーが表示されます
$ ssh AWS
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for 'amazon_private_key-20160805.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "amazon_private_key-20160805.pem: bad permissions"
ec2-user@ec2-user@ec2-00-00-000-000.us-west-2.compute.amazonaws.com: Permission denied (publickey).
# Permission を 600 に変更してください
$ sudo chmod 600 amazon_private_key-20160805.pem
$ ls -l amazon_private_key-20160805.pem
.rw-------@ 1.7k kyamanak 5 Aug 2016 amazon_private_key-20160805.pem
まとめ
今回は、Amazon Linux を利用してログインしてみました。
インスタンスにログインするための最低限の .ssh/config の設定をまとめました。