ssh実習

ssh実習
なかやま ‘まさ’ まさひろ
<[email protected]>
進め方
• おさらい
• 概念編
– sshって何?
– 通信路の暗号化
– 公開鍵暗号系となりすましの危険性
• 実習編
– 鍵を作ってみよう。
– ログインしてみよう。
おさらい
• 「暗号化せぬパスワード、
ネットワークに流すべからず」
sshって何?
• Secure SHellの略:
– 完全に暗号化された通信路を提供
– 様々な方法によるユーザの認証
• いくつかのコマンド群から成り立つ:
– リモートホストへのログイン(slogin)
– リモートホスト上でプログラムを起動(ssh)
– ファイルの転送(scp,sftp)
暗号化された通信路
• sshによる通信は、内容も含めてすべて暗
号化されて転送される。
– ログインパスワード
– 転送するファイルの内容
ユーザの認証
• 「相手を認証」するということ:
– 自分を証明できる情報を示す。
• 例) カードと暗証番号、実印と印鑑証明
• sshでは何通りかの方法を利用できる。
–
–
–
–
パスワード
公開鍵
One Time Password
スマートカード
公開鍵暗号系
• 今日は簡単に……
– 普通は鍵は一つ。
• 慣用鍵/共用鍵と呼ばれる
– 公開鍵暗号系は二つの鍵をペアで使う。
• 非公開鍵(秘密鍵,個人鍵とも呼ばれる)
• 公開鍵
– 「非公開鍵を持っていること」で自分を証明!
なりすましの危険性
• 「自分を証明する情報」の捏造。
– パスワードを盗まれる
– 非公開鍵を盗まれる
• 一応、パスフレーズによる暗号化もされている。
• 「最も弱い鎖から断ち切れる」
– 鍵の管理
実習編
~sshを使ってみよう~
おおまかな手順
•
•
•
•
ソフトウェアのインストール(必要な人)
鍵の作成
鍵の登録
ログインしてみよう。
必要なソフトウェア
• TeraTermPro + TTSSH (Windows環境)
– 鍵ペアを作れないのでPortForwarderも併用。
– http://www.sfc.wide.ad.jp/rg/2002s/newcomer/files/
• OpenSSH(Unix環境)
– 最近はたいていの環境に既に入っている筈。
– (通称)本家sshが入っていることも。
鍵の作成
•
Windowsの場合:
–
PF-keygenを利用
1.
2.
3.
4.
鍵を置くディレクトリを用意(My Documents\ssh等)
PF-keygenを起動
Generate new keyを選ぶ。
非公開鍵のファイル名を指定し、OKする。
例) C:\My Documents\ssh\identity
5. パスフレーズを入力。(確認のため2度)
6. コメントを入力。(一般にユーザ名@ホスト名)
鍵の作成
•
OpenSSHの場合
–
ssh-keygenを利用
1. ssh-keygen –t rsa を実行。
2. 非公開鍵の場所を聞かれるのでそのままEnter。
3. パスフレーズを入力。(確認のため2度)
注: コメントは自動生成される
ユーザ名@ホスト名
鍵の登録
• 入りたいホストに公開鍵を登録する。
– ~/.ssh/authorized_keys に公開鍵の内容を追加
する。普段は自分で追加・削除する。
– 最初は入れないので、[email protected]
に公開鍵を送って登録依頼する。非公開鍵を
送らないように!
– 本文にアカウント名を書いてください。
鍵を利用したログイン(ttssh)
•
TeraTermPro + TTSSHの場合:
–
wanwan.sfc.wide.ad.jpにSSHで接続する。
鍵を利用したログイン(ttssh)
– ユーザ名と鍵の場所を指定し、パスフレーズ
を入力。
鍵を利用したログイン
(OpenSSH)
• OpenSSHの場合
– ssh ユーザ名@ホスト名
(ユーザ名が同じ場合はホスト名のみでOK)
– パスフレーズを入力
[masa@omoikane:~]% ssh wanwan.sfc.wide.ad.jp
Enter passphrase for key '/home/masa/.ssh/id_rsa':
Last login: Mon Apr 15 15:21:14 2002 from
2001:218:458:0:
[masa@wanwan:~]%
Congratulation!
• これでwanwanに入ることが出来るようにな
りました。
– 皆さん、情報処理の授業は覚えています
か?:-)
– lsとかで遊んでみよう。
– sshのマニュアルを読んでみよう。
• setenv LANG ja
• setenv MANPATH /usr/man:/usr/local/man
• man ssh
おさらい
•
•
•
•
•
通信路の暗号化
相手の認証
ソフトウェアのインストール
鍵の作成
ログイン