公開鍵認証の設定方法

SSH(Secure SHell)
公開鍵認証の設定方法
担当講師
株式会社パソコンスクールISA
八鍬 芳明
http://www.isa-school.net/
1
従来のネットワーク通信とSSH
インターネットを経由した攻撃が近年急増している
SSHは暗号化を利用して、安全に通信を行うためのツール
2
OpenSSHのしくみ
†
ユーザのログイン手順
1.
ホスト認証
†
†
サーバが本物かを確かめる(クライアントから)
なりすましの防止
暗号化
復号
偽サーバの可能性
クライアント
2.
ユーザ認証
†
ユーザにログイン資格があるか確かめる(サーバから)
3
ホスト認証のしくみ
†
公開鍵暗号によるホスト認証
„
公開鍵と秘密鍵
† 公開鍵で暗号化 ⇒ 秘密鍵で復号
† 秘密鍵で暗号化 ⇒ 公開鍵で復号
4
ホスト認証の流れ
②サーバの
公開鍵で暗号化
暗号化された
チャレンジコード
③サーバの
秘密鍵で復号
Ai3!&#%
復号した
チャレンジコード
①チャレンジコードの生成
fgi@82$1
fgi@82$1
④チャレンジコード
にセッションIDを追 e4a094fd2
加し、MD5ハッシュ
値を求める
⑥ ④と同じ手順
クライアント
e4a094fd2
⑦比較
e4a094fd2
⑤ハッシュ値をクライアントへ送信
5
サーバ
ユーザ認証のしくみ
†
公開鍵暗号をつかったユーザ認証
6
OpenSSHの設定手順
1.
2.
3.
クライアント側でユーザ認証用の公開鍵と秘密鍵
のペアを生成する
生成した公開鍵をサーバに登録する
クライアントからサーバにログインする
7
1.公開鍵と秘密鍵ペアの生成
†
ユーザの公開鍵
クライアント側で操作
„
ユーザの鍵の生成
†
„
1.ユーザ鍵の生成
$ ssh-keygen –t rsa
id_rsa
クライアント
鍵ファイルの確認
†
$ ls –la ~/.ssh/
/.ssh/ディレクトリ
./
秘密鍵ファイル
id_rsa
公開鍵ファイル
id_rsa.pub
id_rsa.pub
パスフレーズで暗号化
されたユーザの秘密鍵
drwx-----所有者のみ読み書き実行可
-rw------所有者のみ読み書き可
-rw-r--r-8
2.公開鍵のサーバへの登録
†
サーバ側で操作
„
„
„
„
$ mkdir ~/.ssh/
$ cat id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 755 ~/.ssh/
$ chmod 644 ~/.ssh/authorized_keys
9
3.サーバへのログイン
†
リモートホストへの接続
„
„
„
$ ssh –l lpi localhost.localdomain
$ ssh [email protected]
$ ssh localhost.localdomain
(ローカルとリモートのユーザ名が同じ場合)
sshdサーバ
安全なSSHプロトコル
localhost.localdomain
10
主なOpenSSH関連ファイル
†
クライアント側
サーバの公開鍵の一覧
~/.ssh/known_hosts
~/.ssh/id_rsa
†
ユーザの秘密鍵ファイル
サーバ側
~/.ssh/authorized_keys
/etc/ssh/sshd_config
/etc/ssh/ssh_host_rsa_key
/etc/ssh/ssh_host_rsa_key.pub
11
ユーザの公開鍵一覧
sshdサーバの設定ファイル
ホストの秘密鍵ファイル
ホストの公開鍵ファイル
【補足】WindowsからSSHサーバへの接続
†
PuTTY
„
クライアント側での操作
†
„
http://hp.vector.co.jp/authors/VA024651/
PuTTYgenを利用してユーザ鍵のペアを生成する
(例)公開鍵:putty_rsa.pub 秘密鍵:putty_rsa.pkk
サーバ側での操作
†
†
ユーザの公開鍵をサーバに転送し、OpenSSHが使
用可能な形式に変換する
$ ssh-keygen -i -f putty_rsa.pub > putty.pub
変換した公開鍵をauthorized_keysに登録する
$ cat putty.pub >> ~/.ssh/authorized_keys
12