Help us understand the problem. What is going on with this article?

「SSHってなんなの?」レベルだから少し調べた

More than 1 year has passed since last update.

最近AWSの勉強をしておりまして、EC2インスタンスにssh接続をして向こうのサーバーを操作しているのですが、
「ところでSSHってなんだっけ?安全な接続方式なんだろうけど、人に説明できないや。。。」
って感じなので、少し調べてみました。

SSHとは

プロトコルの一種。※プロトコルがわからない方はこちら

Secure Shellの略なのですが、文字通り、セキュア(安全)にShellをいじるための通信プロトコルということですね。

通信相手のコンピュータのシェルを操作するために用いられます。

元はtelnetという似たものが存在していたのですが、telnetは安全ではないです。
なぜかというと、平文で通信するから。盗聴されるとすぐに解読されてしまいます。
しかし、sshでの通信の場合、平文ではなく、暗号化して通信を行います。こうすれば通信を盗聴されても読まれる心配はありません。

じゃあ実際どのように使われるのよ?

調べましたが、いい感じに書いてくれている記事が存在しましたね。
こちらを参照ください。

この記事では、大体の流れをざっくり文字に起こします。

  1. ローカル側のコンピュータで秘密鍵&公開鍵の生成
  2. 公開鍵をリモート側に渡す(ようやくここでssh接続の準備が完了)
  3. ローカル側でssh ~のように、コマンドでssh接続を行う
  4. リモート側が公開鍵と乱数で暗号を作成→ローカル側に暗号を送信&ローカル側でハッシュ値を生成
  5. 暗号鍵(パスフレーズで復号済み)と受け取った暗号でローカル側が乱数を復号&乱数からハッシュ値を計算
  6. ローカル側で計算したハッシュ値とリモート側で生成したハッシュ値が一致すれば、認証完了
yutaro50
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away