sshを使ってみよう! ~ IT系の仕事を全くわからない人がプログラミング出来るまで ~

初めに

前回はターミナルを使ってみました。
今回は前回立てたAWSのインスタンスにsshで遠隔操作したいと思います。(ここまで長かった笑)

sshとは?

sshとは「Secure Shell」の略で、PCを遠隔操作する時に暗号化して通信を行うプロトコルです。遠隔操作用のコマンドと覚えておきましょう!

AWSのインスタンスはクラウド上に仮装に存在するもので、実際にサーバー自体は存在しておりません。なので、インスタンスを操作するには遠隔操作するしかないのです。

sshしなければ仕事は始まらない!ぐらい基本的なコマンドになりますので、絶対マスターしましょう。

公開鍵と秘密鍵

sshするためには公開鍵と秘密鍵というものが必要になります。前回のAWSのインスタンス作成時に秘密鍵をダウンロードしたと思うのですが、その鍵が必要になります。

公開鍵と秘密鍵に関してはこちらの記事がわかりやすいですが、鍵が必要なんだーぐらいの理解で大丈夫かと思います。

なぜ鍵が必要かと言いますと、知らない人に勝手に遠隔操作されたらやばいからです。笑 家に知らない人がいると怖いのと全く一緒です。

今回はAWSのインスタンスにsshしますので、AWSのコンソールから鍵を発行しましょう。

鍵が発行されていれば、AWSコンソールでキーペアが発行されることがわかります。

鍵の準備をする

鍵の場所は分かりますでしょうか?

<鍵の名前>.pem というファイルがダウンロードディレクトリにたぶんあるはず!(移動させてない限り)

ターミナルを開いて鍵のパスを確認しましょう。
pemファイルがあるのが確認できたと思います。

// 鍵の確認
$ ls ~/Downloads/<鍵の名前>.pem
/Users/yuma/Downloads/<鍵の名前>.pem

ダウンロードディレクトリに鍵が置いてあるのは変なのでホームディレクトリに移動しちゃいましょう。(自分の分かりやすいところ)

mv「move」というコマンドがあります。ファイルを移動させるコマンドになります。まだ分かりやすいかも。

使い方は以下になります。

mv <移動させたいファイルのパス> <移動後のファイルのパス>

早速使ってみましょう。

// 鍵の確認
$ ls ~/Downloads/<鍵の名前>.pem
/Users/yuma/Downloads/<鍵の名前>.pem

// 鍵の移動
$ mv ~/Downloads/<鍵の名前>.pem ~

// 移動したことの確認
$ ls ~/<鍵の名前>.pem
/Users/yuma/<鍵の名前>.pem

ホームディレクトリに移動できました。(パチパチ)

次にAWSの仕様として、以下のコマンドを打つ必要があります。誰がこの鍵のファイルを触れるかの権限を変更するコマンドなのですが、ちょいややこしいので、ここでは保留!

# 権限の変更
$ chown 400 ~/<鍵の名前>.pem

# 権限の確認
$ ls -ll ~/<鍵の名前>.pem
-r--------@ 1 <ユーザー名>  staff  1696  8 25 18:16 <鍵の名前>.pem

lsに-llというオプションをつけると権限の確認ができます。(念のため)

sshしてみる

やっと準備が整いました!さっきの鍵を使ってsshしてみましょう!

遠隔操作するインスタンスのDNSを、コンソールで確認してみましょう。

右下のパブリック(DNS ipv4)と書かれている右の文字列がインスタンスの名前です。

それではいよいよ遠隔操作してみます。

ssh -i ~/<鍵の名前>.pem ec2-user@<インスタンス名>

-i というオプションを使用します。意味は「この鍵を使う」になります。今回はAWSからダウンロードした鍵のパスを指定します。

で、ec2-user というユーザー名を指定します。AWSは ec2-userというユーザー名しか認識してくれないため、必須です。

<ユーザー名>@<インスタンス名>で、このインスタンスでこのユーザーでsshしますよーといった意味になります。

早速やってみましょう。

$ssh -i ~/<鍵の名前>.pem ec2-user@<インスタンスの>
...

      __|  __|_  )
      _|  (     /   Amazon Linux 2 AMI
     ___|\___|___|

https://aws.amazon.com/amazon-linux-2/

sshに成功すると、上記のようなロゴが出ますね!

$ hostname
<インスタンス名>

今いる場所を表示するには hostname というコマンドで知ることができます。sshしたインスタンス名が表示されると思います。

sshでサーバーの入り方を試してもらいましたが、サーバーの出方も忘れずに!
exit というコマンドでサーバーから出ることができます。

// sshしていることの確認
$ hostname
<AWSのインスタンス名>

// sshしたサーバーから出る
$ exit
logout
Connection to <インスタンス名> closed.

// 自分のPC名の表示
$hostname
<自分のPC名>

自分のPC(ローカルとよびます。)に戻ってくることができました!

まとめ

今回はAWSのインスタンスにsshして、インスタンスから出るということをやりました。これでインスタンスを自由に触ることができます!めでたしめでたし!

次回は!

次回からいよいよ開発に移っていきたいと思いますが、開発環境を整える際のVS CODE というもので開発する準備を整えていきたいと思います!ではまた!

この記事が気に入ったらサポートをしてみませんか?