AWS EC2(Amazon Linux AMI)で新しいインスタンスを作成するとec2-user
というユーザーが作成されます。Amazon Linuxの場合にはデフォルトでec2-user
ですが、それ以外のAMIの場合には異なることがあるようなので別途確認してみてください。
MacからSSH接続する
EC2インスタンスを初めて作成した時に秘密キーが生成されます。または新しく生成しなおした時に秘密キーが作成されます。
ここでは秘密キーファイル(.pem)は"/Users/ch3cooh/ec2.pem"に格納されているものとします。
パーミッションを変更しておきます。理由は後述します。
$ chmod 400 /Users/ch3cooh/ec2.pem
SSH接続する
sshコマンドでEC2のインスタンスに接続します。ユーザー@ホストの形で指定します。
$ ssh -i /Users/ch3cooh/ec2.pem ec2-user@ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com Last login: Wed Mar 2 09:45:23 2016 from ***.ne.jp __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2015.09-release-notes/ [ec2-user@ip-xxx-xx-xx-xxx ~]$
接続できました。ホストはAWSのマネージコンソールから確認することができます。
パラメータを省略してSSH接続する
毎回鍵のパスと長いホスト名を指定するのは少し大変です。
~/.ssh/configに鍵のパスやユーザー名を指定してしまいます。
Host ec2user HostName ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com User ec2-user Port 22 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile "/Users/ch3cooh/ec2.pem" IdentitiesOnly yes LogLevel FATAL
接続します。
ssh ec2user
で接続できるようになりました。
トラブルシューティング
秘密キー鍵の指定はまちがっていないのにSSH接続できない
以下のような「変なエラー」が表示された場合は、秘密キーファイルのパーミッションが間違っています。
Warning: Permanently added 'ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com,xx.xx.xxx.xxx' (ECDSA) to the list of known hosts. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for '/Users/ch3cooh/ec2.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 "/Users/ch3cooh/ec2.pem": bad permissions Permission denied (publickey).
警告メッセージに書いている通りパーミッションを変更します。
$ chmod 400 /Users/ch3cooh/ec2.pem