この記事はこちらの続きになります。
この記事は、EC2に作成したサーバーへSSH接続する方法を書いています。詳しい手順はこちらを参照して下さい。ここでは必要最低限の手順を画像と共に記載します。
準備
pemファイルの作成
pemファイルとは、サーバー証明書です。これを使用してEC2に作成したサーバーへ接続します。以下は証明書の作成方法となります。
EC2 Management Consoleの左のメニューの”キーペア”をクリックします。
“キーペアの作成”をクリックします。
“キーペア名”を入力して、”作成”をクリックします。名前はなんでも構いません。例えば”key”、”mykey”などとすると良いでしょう。
キーペアの作成と共に、キーが記述されたファイルがダウンロードされます。
ここで一つ注意です。こちらのページに書かれていますが、このダウンロードが作成したキーをダウンロードする唯一の機会です。決して紛失しないで下さい。ダウンロードしたpemファイルは適当なディレクトリに移動して大切に保管しておきましょう。私はSSHで使用するので、~/.ssh/に保存しています。
ダウンロードしたファイルは自分だけが読めるように権限を変更しておきましょう。
1 | $chmod 400 <証明書.pemのパス> |
ホスト名の取得
EC2 インスタンスページのパブリックDNS名がホスト名にあたります。
SSH接続してみよう
Macならターミナルで、WindowsならTera Term等を用いて接続してみましょう。私はMacを使っていますので、以下は全てMacで実行した結果です。Windowsの方は適宜置き換えて下さい。
1 | $ssh -i <証明書.pemのパス> ec2-user@<ホスト名> |
“ec2-user”はサーバーインスタンスのデフォルトユーザーです。
接続できない場合
正しく証明書、ユーザー名、ホスト名を指定しても接続できない場合、インスタンス作成時に作成されたセキュリティグループ(デフォルト名はlaunch-wizard-1)のインバウンドを確認し、タイプSSHが存在しなかった場合は追加して下さい。
もっと楽に接続したい
毎回、上記のコマンドを打ったり、historyコマンドを使って探すのは面倒です。
~/.ssh/configファイルに接続設定を記述する事で楽に接続できるようになります。
1 2 3 4 | Host aws HostName <ホスト名> IdentityFile <証明書.pemの絶対パス> User ec2-user |
こうする事で以下のコマンドで接続できるようになります。
1 | $ssh aws |
楽です。
ファイルを送受信してみよう
EC2インスタンスサーバーとscpを用いてファイルのやり取りを行えます。
送信
1 | $scp -i <証明書.pemのパス> <送信するファイルのパス> ec2-user@<ホスト名>:<送信先ディレクトリ> |
具体的に書くとこうなります。
1 | $scp -i ~/.ssh/key.pem ~/foo.zip ec2-user@ec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.com:~/ |
上記のコマンドで、ローカルマシンのホームディレクトリのfoo.zipファイルを、リモートマシンec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.comのユーザーec2-userのホームディレクトリにコピーします。
受信
1 | $scp -i <証明書.pemのパス> ec2-user@<ホスト名>:<ファイルのパス> <受信先ディレクトリ> |
具体的に書くとこうなります。
1 | $scp -i ~/.ssh/key.pem ec2-user@ec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.com:~/bar.txt ~/ |
上記のコマンドでリモートマシンec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.comのユーザーec2-userのホームディレクトリのbar.txtファイルを、ローカルマシンのホームディクトリへコピーします。
もっと楽に送受信したい
ssh接続と同様に~/.ssh/configファイルに記載した内容を用いてファイルを送受信できます。
1 | $scp <ファイル> <ホスト設定名>:<送信先ディレクトリ> |
1 | $scp <ホスト設定名>:<ファイルのパス> <受信先ディレクトリ> |
具体的に書くとこうなります。
1 | scp ~/foo.zip aws:~/ |
1 | #scp aws:~/bar.txt ~/ |
楽です。
まとめ
EC2の機能でキーペアを簡単に作成でき、簡単に接続できました。
ファイル転送はSFTPを用いてもできます。便利なクライアントツールを持っている場合、そちらを使用すると良いでしょう。
次回はEC2インスタンスサーバーにapcheをインストールし、Webサーバーとする手順を書きます。
宮崎県在住。
プログラムを書いて暮らしています。趣味はルアーフィッシング、ギター。