SSH
sshとか、鍵とか、ssh-keygenとか言葉はよく見るものの、仕組みをよくわかっていなかったので、調べてみた.
SSHとは
リモートのサーバーと安全に通信を行うためのプロトコル.
パスワードやデータを暗号化して通信する.
SSHの認証方式
パスワード認証方式と公開鍵認証方式がある.
パスワード認証方式
ユーザー名とパスワードでログインする.
公開鍵認証方式
公開鍵と秘密鍵の2つの鍵を使用している.
サーバーに公開鍵、クライアントに秘密鍵を置く
ファイルシステム
sshの情報や公開鍵と秘密鍵などの情報は、~/.ssh/内のファイルに置かれる
config : sshの情報を書く
id_rsa : ssh-keygenで生成した秘密鍵
id_rsa.pub : ssh-keygenで生成した公開鍵
known_hosts : 過去に接続したことがあるサーバーを記す
鍵の利用の流れ
公開鍵、秘密鍵の生成
ssh-keygen -t rsa
このとき、-t rsaとすることによって、暗号のタイプをRSAにしている.
他の暗号の種類は、RSA1やDSAがある.
一般的には、rsaが最善とされている.
鍵を作成するとき、パスフレーズを求められる. これは、設定しないことも可能であるが、万が一秘密鍵が盗まれてしまっても、情報の漏洩を防ぐためにパスフレーズの設定が推奨されている.
公開鍵の生成が完了すると、記号絵図のようなものが表示される. これはrandomartと呼ばれる. 鍵は、本来ただの文字列だけなので、突然鍵の中身が変更されても気づけない. それをrandmartにすることによって、突然の変更があったとしても、気付けるようにしてる.