0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SSHについて

Last updated at Posted at 2024-09-29

■はじめに

普段からSSHを使用することがあるのですが、大変恥ずかしながらSSHというものをよく分かっていない状態でいままで使用しておりました。
これを機に、基礎的な内容となりますがSSHについてまとめてみました。

■SSHとは?

SSHは、Secure Shellの略称であり、あるコンピュータから他のコンピュータへと通信するためのプロトコルになります。SSHで通信する情報は暗号化されており、安全性が確保されていることが特徴です。

もともとは、Telnetなどの通信技術が使用されていたのですが、これらは通信内容が暗号化されていない状態(平文)となっておりました。容易に想像できると思われますが、このままだとパスワード等の重要な情報が盗聴されたりするという危険性があり、この問題点を解決するために作られたのがSSHとなります。

■認証方式について

SSHではいくつかの認証方式があるのですが、ここでは代表的な2例を紹介させていただきます。

パスワード認証

こちらはユーザー名とパスワードを使用して認証する方式となります。
サーバー側に上記を登録するだけなのですが、パスワード自体が簡単に設定されてしまったり、パスワードの使い回しによる盗聴の危険性などがあり、セキュリティ的に脆弱性が懸念されるため、使用することはなるべく避けたほうがよいと考えられます。

公開鍵認証

こちらは、公開鍵と秘密鍵を使用して認証する方式となります。
大まかな流れは以下のとおりです。
1. クライアント側で公開鍵と秘密鍵を作成する(公開鍵と秘密鍵は2つで1つのユニークなものとなります)
1. 公開鍵を何らかの方法でサーバー側に渡して登録しておきます
1. クライアントはログインしたいという通信をサーバーに送ります
1. サーバーは認証するために、事前にクライアントから受け取った公開鍵を用いて暗号化したデータをクライアントに送信します
1. クライアントは、秘密鍵を用いて受け取った暗号データを復号し、サーバーに返送します
1. サーバーは複合されたデータが正しい内容であれば認証に成功したと判断します

(2024/09/30 @angel_p_57さんにご指摘いただき、修正しました)
こちらの記事を参考にさせていただきました

  1. クライアント側で公開鍵と秘密鍵を作成する(公開鍵と秘密鍵は2つで1つのユニークなものとなります)
  2. 公開鍵を何らかの方法でサーバー側に渡して登録しておきます(このときに公開鍵とセッションIDが共有される)
  3. 認証時は、クライアントは秘密鍵を用いて署名を作成し、サーバーに送信します
  4. サーバーでは、公開鍵の照合と署名の検証を行い、両方が問題なければ認証に成功したと判断します

■公開鍵と秘密鍵の作成

簡単にはなりますが、クライアント側での公開鍵と秘密鍵の作成手順についても紹介させていただきます。

まずはディレクトリの作成

公開鍵と秘密鍵を保管しておくディレクトリを作成しましょう

$ mkdir ~/.ssh
$ cd ~/.ssh

SSHキーの作成

以下のコマンドでSSHキーを作成してください。(オプションをつけることも可能です)

$ ssh-keygen

作成に成功すると、以下のように公開鍵と秘密鍵が確認できると思います。

$ ls
id_rsa  id_rsa.pub
  • id_rsa: 秘密鍵
  • is_rsa.pub: 公開鍵(pubはpublicの略)

サーバー側に公開鍵を登録

サーバー側の~/.ssh配下にクライアント側で作成した公開鍵の中身を登録してください
※秘密鍵は流出しないようにクライアント側で大切に保管してください

■さいごに

いかがでしたか?
いつもなんとなく使用していたので、この機会に学習できたのはよかったです。
どなたかのお役に立てれば嬉しいです!

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?