[ logo: ODIN ] [ logo: GOO ]
■ SSH のセッティング & 利用法 (SSH1) ■

by Daisuke Furihata
作成 & 公開: 2000/04/06
参考文献(link)を載せる & win用 SSH バイナリの在処を更新: 2000/10/19

全体にいい加減なメモなので、詳しくは参考文献を参照のこと(^-^)。

(2000/04/06) 参考文献
References

まずは Unix Magazine の連載 "Secure Shell(1)-(3)" by 島 慶一氏(1998.06-08) がお奨めです。 後は web 上にたくさんの解説がありますので、コーヒー片手に御覧になると良いかと。 goo などで SSH なんて単語を検索すれば死ぬほど答えが返ってきます(^-^)。
とくに,この文章では現段階では「わざと説明を省略した」部分がたくさんありますので, なにかおかしいなと思ったら参考文献を当たってください.

最近人から聞いた参考文献
SSH の使い方 by 土屋 英亮氏(電通大)
SSH ってかんたんなのね by 丹野 一氏(筑波大)
TTSSH (Teraterm SSH Extension)とTera Term Proで Windowsからも SSHを使おう。 by 三谷 洋司氏(慶應大)
(199//) リモートマシン管理者がやるべきこと (SSHd のインストール及びセッティング)
English small explanations

いずれ作成
(2000/03/24) ユーザがやるべきこと (秘密・公開鍵の作成、管理 および SSH クライアントのセッティング)
TODO of end users

一組のRSA鍵(秘密・公開)の作成 & 保存
SSH の基本である RSA 認証に用いる、ユーザ用の公開鍵,秘密鍵, パスフレーズを作成します。 これはこの3つで一組で、基本的にはユーザが用いるローカルマシン毎に作成します。 普通のパスワードでは、リモートマシン毎にパスワードを作成しますが、 SSH では逆になり、ローカルマシン毎に鍵の組を作ることになります。 何故なら、後で分かるように、秘密の鍵は「ローカルマシン上にだけ」 置かれるからで、その秘密を独立に保つために、 ローカルマシンの数だけ鍵の組が必要になるからです。
これらの鍵の性質は以下の通りです。

公開鍵(通常ファイル名: identity.pub)
そのユーザ固有の「publicな」鍵です。 この鍵を使って文書を暗号化すると、 次の秘密鍵とパスフレーズとの両方を用いないと復号できないという性質があります。 これを利用して、ユーザと秘密を共有することなく、 ユーザが「本物かどうか」を問うことができます。
秘密鍵(通常ファイル名: identity)
ローカルマシン上に置かれるユーザの「秘密の」鍵です。 パスフレーズと合わせて個人の認証に用いられる大事なものです。
パスフレーズ(ユーザの記憶の中にだけ存在)
理論的には秘密鍵の一部と見なせる(はずの)もので、ファイルの形でなく、 ユーザが記憶する部分です。 ローカルマシンにもリモートマシンにも一切記録されません。 実際の SSH 利用の際には、ユーザから見て今までのパスワードのような扱いになります。

実際の作成には、(なるべくローカルマシン上で)ssh-keygen コマンドを用います。 ssh-keygen と入力すると、コマンドが対話的に実行されますので、 それを読みながら、自分で考えたパスフレーズを入れるだけで、 上記の二つのファイル(identity, identity.pub)が作成されます。
windows 用の ssh-keygen コマンドは、念のために引数 -C を用いて ssh-keygen -C ユーザ名@ローカルマシン名 として使用したほうが良いようです。 (windows 用の ssh-keygen コマンドは,windows 用の SSH コマンド群に含まれています. 入手およびインストールは SSH クライアントの設定の部分を見てください.)

最後に、作成された上記二つのファイルを所定のディレクトリ -- 通常は $HOME/.ssh/ -- に入れておけば良いのですが、普通は ssh-keygen コマンドが上記ファイルをこのディレクトリに作るので特に何もする必要はありません。
ただし、ローカルマシンが windows や Mac の場合は自分で適当なディレクトリに保存する必要があります。 これは、後で述べるクライアントプログラム(TeraTermPro 等) と同じディレクトリなどが良いでしょう。

RSA 公開鍵の公開
公開鍵はその名のごとく、「公開」するために存在します。 SSH の場合「公開」は、リモートホストの $HOME/.ssh/authorized_keys というファイルにローカルホストの公開鍵が書かれているという意味になります。
具体的には、上の作業で作成した identity.pub を authorized_keys という名前のファイルとして複製し、ftp 等でリモートホストのユーザホームディレクトリの .ssh ディレクトリに転送すれば OK です。 公開鍵は単なるテキストですので、ftp を用いるときは ASCIIモードで。
ただし、既にリモートホストに authorized_keys ファイルが存在する場合は、 ftp で上書きなどせずに、公開鍵、すなわちローカルホストの identity.pub の中身、をエディタ等でリモートホストの authorized_keys に付け足す必要があります。

SSH クライアントの設定
Unix の場合
SSH がインストールされてさえいれば、特にほとんど設定は不要なはず、です。 何か問題があったら、まずは man ssh から(^-^)。
windows の場合
通信ソフトとしては TeraTermPro とその SSH-module である ttssh の組合わせがお奨めです。 また、windows 上で ssh-keygen コマンドを使うならば windows 用のSSH コマンド群も必要になりますので、一応用意しておきましょう。
TeraTermPro は優秀な telnet 端末ソフト(& Free)なので、SSH を使わない人にも御利用をお奨めします。
入手先は次の通りです。

TeraTermPro (入手ファイル名: ttermp23.zip)
http://www.vector.co.jp/authors/VA002416/teraterm.html
ttsshモジュール (入手ファイル名: ttssh151.zip)
http://www.zip.com.au/~roca/ttssh.html
SSH コマンド群 (入手ファイル名: ssh-1.2.14-win32bin.zip)
ftp://ftp.cs.hut.fi/pub/ssh-old/contrib/ssh-1.2.14-win32bin.zip

注: SSH コマンド群には,βですがバージョンアップしたものもあります. ただし,cygwin*.dll が必要とあるので,cygnus 派用ですな. こちらには sshd.exe や ssh-agent.exe も入っています. 私は cygnus を使わない人なので動作確認はしていませんが. → ftp://ftp.cs.hut.fi/pub/ssh-old/contrib/ssh-1.2.22-Win32-Beta1.zip

インストールは以下の通りです。
  1. TeraTermPro のインストール
    tterm23.zip を展開して、その中の setup.exe を起動するだけでインストールできます。
  2. ttsshモジュール のインストール
    ttssh.zip を展開して、その中身を全て TeraTermPro のインストールしてあるディレクトリにコピーします。 その後、c:\autoexec.bat の最後にでも次の一行を書き加えて windows を再起動します。

    set TERATERM_EXTENSIONS=1

  3. SSH コマンド群 のインストール
    ssh-1.2.14-win32bin.zip を展開して、その中身を全てパスの通ったディレクトリに入れます。

TeraTermPro で、SSH 用に設定する項目は以下の通りです。
  1. Setup -> SSH -> SSH Known Hosts -> Read/wirtefiles
    ssh_known-hosts とでも書込んでおきます。 設定ファイルを集めたディレクトリなどにしたいならば、相対指定で指定します。
  2. Setup -> SSH Authentication Setup
    まず、user にユーザ名を記入します。 次に、Use RSA key to log in を選択し、 Private key file: に先ほど作成・保存した identity ファイルを指定します。

Macintosh の場合
SSH 対応のフリーな telnet クライアントとして NiftyTelnet というものがありますが、日本語が使えません。 日本語対応かつ SSH 対応となると、有償のものを使うしかないうえに、かなり面倒なようです。 詳しくは How to use ssh on Macintosh を御覧下さい。
# 現状では Mac で SSH は諦めて windows を使った方が早いです…
(2000/04/06) SSH クライアントのちょお基本的な利用法
How to use clients for SSH? (Basic Level)

Unix の場合
telnet xxx や rlogin xxx, rsh xxx の代わりに ssh xxx とするだけです。 パスワードではなく、上で作成したパスフレーズを聞かれますので、それを入力すれば OK です。
windows の場合
TeraTermPro を起動して、New connection 画面の時に、 TCP/IP を選択し、Host 名を入力し、Service として SSH を選択するだけです。 後は Unix の場合同様にパスフレーズを聞かれますので、入力すれば OK です。
ちなみに、TeraTermPro + SSH-module で SSH を用いて接続に成功すると、 TeraTermPro の左上のアイコン表示が鍵の絵になるので、目でみて確認できます(^-^)。
Macintosh の場合
やはり How to use ssh on Macintosh を御覧下さい。
面倒なことが分かります(^-^)。
(2000/04/06) SSH クライアントの応用としての利用法
How to use clients for SSH? (Middle Level)

rsh, rcp, rlogin の代わりとなる基本コマンド ssh, scp, slogin が使えるようになる他、ポート転送によって POP, X などの通信まで暗号化できます。
# TeraTermPro + SSH-module はポート転送をサポートしています。

また、パスフレーズを自動的に入力してくれるエージェントツール (ssh-agent)もありますので、「毎回入力するのは面倒だな」 という人は調べてみるといいでしょう。

その他、詳しいことは参考文献を見て下さい(^-^)。


■ Upper-page ■