mutao.net

いわゆる雑記。

OpenSSH

SSHについて

SSH (Secure Shell)は暗号化を用いたリモートホストの遠隔操作用プロトコル

遠隔操作用のプロトコルTELNETは通信内容が暗号化されない。

SSHクライアントがSSHサーバへアクセスする際、ホスト認証とユーザ認証が行われる。

ホスト認証

  1. SSHクライアントがSSHサーバへアクセス
  2. SSHサーバは公開鍵をSSHクライアントに送信する
  3. SSHクライアントは受け取った公開鍵と ~/.ssh/known_hosts ファイルに格納されているSSHサーバの公開鍵と照らし合わせて認証を行う。

公開鍵方式

ユーザ毎に一対の公開鍵と秘密鍵を作成する事前準備が必要。

  1. 一対の公開鍵と秘密鍵を作成する
  2. ユーザの公開鍵を ~/.ssh/authorized_keys に登録する。
  3. SSHクライアントがSSHサーバにアクセスした際にユーザの公開鍵を送信する
  4. SSHサーバが認証すると、SSHクライアントはユーザの秘密鍵を用いて署名を作成する。
  5. データを作成した署名をSSHサーバへと送信する
  6. ユーザの公開鍵で署名を検証し、ログインを許可する

OpenSSHの設定ファイル

SSHクライアント SSHサーバ(sshd
config /etc/ssh/ssh_config /etc/ssh/sshd_config
秘密鍵 ~/.ssh/id_rsa /etc/ssh/ssh_host_rsa_key
公開鍵 ~/.ssh/id_rsa_pub /stc/ssh/ssh_host_rsa_key.pub
認証鍵のリスト ~/.ssh/known_hosts ~/.ssh/authorized_keys