入社1week目の個人的メモ。
ssh接続について
ssh-keygenコマンドは「OpenSSH」で使う公開鍵と秘密鍵や、CA鍵(Certificate Authority、認証局による鍵)を使った「証明書」と呼ばれるファイルを作成できます。
OpenSSH とは
ネットワーク経由通信を暗号化する「SSH」のオープンソース実装です。
おもにUNIX/Linuxサーバに対するネットワーク経由でのリモートログインに使用します。
SSH とは
「SSH(Secure Shell)」は、暗号や認証の技術を利用してセキュアにリモートコンピュータと通信するためのプロトコルです。
パスワードなどの認証情報を含む通信を暗号化します。
プロトコル とは
定められた、データ通信を行うための規約。情報フォーマット、交信手順。
引用:https://www.ossnews.jp/oss_info/OpenSSH
なぜssh接続が必要なのか
引用:https://www.kagoya.jp/howto/rentalserver/ssh/
VPS(バーチャル・プライベート・サーバー.)などの各種サーバー機器は、ほとんどの場合、操作をする人から離れた場所にあります。
そのため、この操作をする人だけが安全にインターネット経由で接続できる手段が必要になります。
なぜなら、万一悪意をもった人がサーバーにログインできてしまうと、サーバー内ではやりたい放題となり、さまざまなリスクの原因となるからです。
なおふだん使うSSHという用語には、以下のような複数の意味があるため、どれを指しているかを明確にする必要あり。
- SSHでサーバーにログインするための情報(ホスト名、パスワード、認証用ファイルなど)
- ソフトウェアとしてはサーバーとクライアントの両方ある
- WindowsなどのOSからは、専用のクライアントソフトを使って接続する
sshとsslの違い
-
SSH
目的:サーバーへの接続
主な対象者:サーバー管理者 -
SSL
目的:Webサイトを安全に表示
主な対象者:Webサイトの閲覧者
SSHの認証方法について
離れた場所にあるサーバーへ安全に接続するため、SSHは複雑にできている。
さらに、サーバーへのログインが適正かどうかチェックする認証方法は、複数用意されている。
代表的なものはパスワード認証方式
と公開鍵認証方式
。
- パスワード認証方式
この場合のパスワードは、サーバーのユーザーアカウントに設定しているもの。
手軽だが、パスワードが流出すると、悪意をもった第三者からサーバーにログインされてしまう可能性があり、危険でもある。
※ 実際にはパスワードのみを単純に確認しているわけではなく、複雑な動きをしている。
詳しくは引用元参照。
- 公開鍵認証方式
初期設定作業が大変だが、通信の安全性はとても高い方式。
方法はいくつかありますが、「鍵」と呼ばれるファイルをしっかり保管さえすれば、「鍵」のないユーザーからのログインは原則できません。
これにより、悪意をもった第三者からの不正なログインを防ぐことができます。
公開鍵認証方式は、ざっくり言うと以下のような流れ。
- 「鍵」作成(「鍵」は、SSHサーバーかSSHクライアントかどちらかで作成します。)
- サーバーとクライアントで必要な「鍵」をそれぞれ保管
「鍵」は1つではなく、必ず**サーバー用(公開鍵)とクライアント用(秘密鍵)
**とをペアで作成します。 - SSHクライアントを操作し、**
SSHサーバー
**にログインしたい意思を伝える - 相互に「鍵」を照合し、合っているか確認
- 通信の暗号化などの手続き(暗号化や復号化、それらをするための情報のやりとり)
- 暗号化された通信が開始
ssh-keygen コマンドとオプション
Linuxコマンド ssh-keygen
秘密鍵と公開鍵をのセットを発行するLinuxコマンド。
ファイル場所とデフォルトのファイル名は以下の通り。
秘密鍵:/root/.ssh/id_rsa
公開鍵:/root/.ssh/id_rsa.pub
自分の場合は~/.ssh/
ディレクトリが存在しなかったので、mkdirで作成した。
手順書で出てきた以下のコマンドについて
手順書のコマンド
ssh-keygen -f stash_rsa -t rsa -b 2048
基本文法
ssh-keygen [オプション] [-f 鍵ファイル]
※[ ]は省略可能な引数
各種オプションの意味
引用元:https://www.atmarkit.co.jp/ait/articles/1503/20/news007.html
-
-f
オプション
ファイルを指定する。
今回はstash_rsaという名前にしたかったので、使っていると思われる。
(指定しないとid_rsaという名前で生成される。) -
-t
オプション
鍵の種類 rsa1, dsa, ecdsa, ed25319, rsa (-tで指定しない場合はバージョンにもよるけど大抵rsaがデフォルト) -
-b
オプション
鍵の長さを指定する(最低値は768bit、初期値は2048bit)
上記コマンドでも2048bitが指定されている。
(初期値が2048bitと引用元に書いてあるが、あえて指定している理由は不明)
秘密鍵と公開鍵を生成した後の設定
疲れたので後日記載しよう。