AWS EC2のサーバーへSSH接続する

この記事はこちらの続きになります。

この記事は、EC2に作成したサーバーへSSH接続する方法を書いています。詳しい手順はこちらを参照して下さい。ここでは必要最低限の手順を画像と共に記載します。

準備

pemファイルの作成

pemファイルとは、サーバー証明書です。これを使用してEC2に作成したサーバーへ接続します。以下は証明書の作成方法となります。

EC2 Management Consoleの左のメニューの”キーペア”をクリックします。

キーペアをクリック

“キーペアの作成”をクリックします。

キーペアの作成

“キーペア名”を入力して、”作成”をクリックします。名前はなんでも構いません。例えば”key”、”mykey”などとすると良いでしょう。
キー名の入力

キーペアの作成と共に、キーが記述されたファイルがダウンロードされます。

ここで一つ注意です。こちらのページに書かれていますが、このダウンロードが作成したキーをダウンロードする唯一の機会です。決して紛失しないで下さい。ダウンロードしたpemファイルは適当なディレクトリに移動して大切に保管しておきましょう。私はSSHで使用するので、~/.ssh/に保存しています。

ダウンロードしたファイルは自分だけが読めるように権限を変更しておきましょう。

ホスト名の取得

EC2 インスタンスページのパブリックDNS名がホスト名にあたります。

ホスト名の取得

SSH接続してみよう

Macならターミナルで、WindowsならTera Term等を用いて接続してみましょう。私はMacを使っていますので、以下は全てMacで実行した結果です。Windowsの方は適宜置き換えて下さい。

“ec2-user”はサーバーインスタンスのデフォルトユーザーです。

接続できない場合

正しく証明書、ユーザー名、ホスト名を指定しても接続できない場合、インスタンス作成時に作成されたセキュリティグループ(デフォルト名はlaunch-wizard-1)のインバウンドを確認し、タイプSSHが存在しなかった場合は追加して下さい。

SSHインバウンドを追加

もっと楽に接続したい

毎回、上記のコマンドを打ったり、historyコマンドを使って探すのは面倒です。

~/.ssh/configファイルに接続設定を記述する事で楽に接続できるようになります。

こうする事で以下のコマンドで接続できるようになります。

楽です。

ファイルを送受信してみよう

EC2インスタンスサーバーとscpを用いてファイルのやり取りを行えます。

送信

具体的に書くとこうなります。

上記のコマンドで、ローカルマシンのホームディレクトリのfoo.zipファイルを、リモートマシンec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.comのユーザーec2-userのホームディレクトリにコピーします。

受信

具体的に書くとこうなります。

上記のコマンドでリモートマシンec2-xx-xxx-xx-xx.ap-northeast-1.compute.amazonaws.comのユーザーec2-userのホームディレクトリのbar.txtファイルを、ローカルマシンのホームディクトリへコピーします。

もっと楽に送受信したい

ssh接続と同様に~/.ssh/configファイルに記載した内容を用いてファイルを送受信できます。

具体的に書くとこうなります。

楽です。

まとめ

EC2の機能でキーペアを簡単に作成でき、簡単に接続できました。

ファイル転送はSFTPを用いてもできます。便利なクライアントツールを持っている場合、そちらを使用すると良いでしょう。

次回はEC2インスタンスサーバーにapcheをインストールし、Webサーバーとする手順を書きます。