sshコマンドで何をしているのか
つまるところ…
結論から言うと、sshコマンドは、別のPCに接続をするコマンドです。
要は、リモートでPCにログインしているということです!
例えば図で表すと、AWS で EC2 をお使いの場合には以下のようになります。
コマンドの使い方
sshコマンドの基本的な使い方は以下の通りです。
(オプションもあるので、後述します)
ssh ユーザー名@IPアドレス
※このコマンドを実行(Enter)するとパスワードの入力が求められる。
普段使っている自分のPCにログインする時も「ユーザー名」と「パスワード」を入力していると思いますが、sshでも別のPCにログインしているだけなので、やっていることは基本的に同じことですね。
自分のPCにログインする時と違って「IPアドレス」の入力が必要な理由は、”どのPCにログインするか”という情報が必要なためなんです。
場合によっては「IPアドレス」でなく、「ホスト名」を使用することもありますが、まあ初心者のうちはIPアドレスと覚えておくと良いでしょう。
オプションについて
よく使うオプションを1つ紹介しておきます。
それは “-i” のオプションです。
特にAWSを使う人には覚えておいてほしいオプションです。
“-i” のオプションを使用した sshコマンドの使い方は以下の通りで、「証明書ファイル」と呼ばれるものが必要になります。
(※代わりに「パスワード」の入力が不要となります)
ssh -i xxx.pem ユーザー名@IPアドレス
「xxx.pem」と記載した部分が「証明書ファイル」と呼ばれるもので、ログインに必要なsecret情報(つまりパスワード)が暗号化された状態で入っています。
ユーザー名やIPアドレスについては、先ほど紹介した内容と同じですね。
AWS編
AWS の EC2 にsshする
昨今ではAWSを使って開発する人も多いと思いますので、これ以降 EC2 でのsshを解説していきます。
pemファイルの取得
EC2 にsshする際には、”-i” オプションでpemファイルを用いて接続する方法が一般的です。
pem(ペム)ファイルは、EC2インスタンスを作成する時にAWSの画面からダウンロードすることができます。
セキュリティグループの確認
EC2を作成した後、対象のインスタンスのセキュリティグループを確認してみましょう。
「インバウンドルール」の中にタイプがSSHとなっている行があると思います。
これは、外部からEC2への接続を許可する設定で、この設定がないとsshコマンドを実行してもタイムアウトになったりします。
もしこの設定が無い場合は、「インバウンドのルールを編集」の画面から追加しましょう。
パブリックIPアドレスを確認
sshコマンドの実行には「ユーザー名」と「IPアドレス」が必要でしたね。
EC2 のユーザー名は、特殊な指定をしていない場合、デフォルトで “ec2-user” と決まっています。
IPアドレスは、AWSの画面から EC2 を選択することで確認できます。
sshでは、下の画像に赤枠で囲っている、「パブリック IPv4 アドレス」を使用します。
ここでsshコマンドをおさらいしておきましょう。
ssh -i xxx.pem ユーザー名@IPアドレス
Cloud9からEC2へssh
これまでは自分のPCから EC2 へsshする方法を解説してきましたが、開発自体はローカルPCでなくクラウドのIDEでやっている人も少なくないと思います。
ここでは AWS の Cloud9 を例にして説明します。
まず、自分のPCから Cloud9 に繋いで、sshで EC2 に接続しているのを簡単な図にしてみました。
Cloud9 を開くにはAWSの画面から操作していきますが、ブラウザを経由して認証済(ログイン済)のため、sshしなくとも自分のPCから Cloud9 には繋がります。
Cloud9 → EC2 の接続は、新たに認証(ログイン)が必要なため、sshコマンドで証明書ファイルを指定し、接続します。
Cloud9上のpemファイル
さて、EC2 へのssh接続には、pem(証明書)ファイルが必要でしたね。
pemファイルは EC2 を作成する際に自分のPCにはダウンロードしていると思います。
Cloud9 から EC2 にsshするために、このpemファイルを Cloud9 にアップロードしましょう。
やり方は簡単で、自分のPC上でpemファイルを Cloud9 の画面にドラッグ&ドロップするだけです。
これでアップロードは完了です。
そうしたら Cloud9 のターミナル画面で、以下のようにsshコマンドを実行すれば EC2 へ接続完了です!
ssh -i pemファイル(相対パス) ec2-user@EC2のパブリックIPアドレス
コメント