SSHサーバ(OpenSSH)

Telnetやftp,rloginなどは、全て暗号化されないため、passwardなども暗号化されずに 通信経路をながれてしまう。 これを防ぐためにあるのがSSH(Secure SHell)である。 SSHは、全ての通信路を暗号化して通信を行なってくれる他、 トンネリングという機能を備えており、 SSHを偽装していろいろなプロトコルを暗号化して通信させる ことができる。 暗号化には秘密鍵と公開鍵を利用して行なわれます。

OpenSSHは、SSHプロトコルを フリーで実装したものである。

もどる

ダウンロードとインストール

下記のページのダウンロードサイトをLinux用RPMをクリックしていき、 rpmを取得する。

http://www.openssh.com/ja/portable.html

openssh-server-3.1p1-1 openssh-askpass-3.1p1-1 openssh-askpass-gnome-3.1p1-1 openssh-clients-3.1p1-1 openssh-3.1p1-1 のrpmを取得してインストールする。

$ cd /usr/local/src
$ rpm -ivh openssh-server-3.1p1-1 \
openssh-askpass-3.1p1-1 \
openssh-askpass-gnome-3.1p1-1 \
openssh-clients-3.1p1-1 \
openssh-3.1p1-1
	

これでサーバのインストールが終了である。

サーバの設定と起動

まずは、サーバ側にhost keyをつくりますが、sshdを立ち上げると 最初になければ自動的につくられる。

# /etc/rc.d/init.d/sshd start
Generating SSH1 RSA host key:                              [  OK  ]
Generating SSH2 RSA host key:                              [  OK  ]
Generating SSH2 DSA host key:                              [  OK  ]
Starting sshd:                                             [  OK  ]
	

次回の起動からは鍵の生成は行なわれない。

続いて、接続するユーザが、サーバマシンで自分の公開鍵と秘密鍵を 生成する。そのときにpassphraseというのが必要になる。 これは、passwordみたいなものだが、空白なども使える。

まずはDSA鍵をつくる。

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/ohmori/.ssh/id_dsa):
Created directory '/home/ohmori/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ohmori/.ssh/id_dsa.
Your public key has been saved in /home/ohmori/.ssh/id_dsa.pub.
The key fingerprint is:
15:c0:3e:ed:1f:1e:87:aa:ce:ce:2e:58:ca:d5:cc:c5 ohmori@yari.bigforest.hn.org
	

つづいてRSA鍵をつくります。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ohmori/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/ohmori/.ssh/id_rsa.
Your public key has been saved in /home/ohmori/.ssh/id_rsa.pub.
The key fingerprint is:
c7:cd:be:8f:75:15:54:8f:0a:3d:f5:ea:c6:7a:e2:73 ohmori@yari.bigforest.hn.org
	

これで準備完了である。

クライアントでの設定の確認

Windowsをクライアントにする場合は、TTSSHを使うとよい。 WindowsのソフトでTeraTermという有名なソフトがある。 これのssh拡張したものがTTSSHというものである。

TeraTerm
TTSSH(SSH拡張)

上記サイトからTeraTermとTTSSHをダウンロードしてくる。 TeraTermをインストールした後に、TTSSHをzipファイルを TeraTermをインストールしたディレクトリで展開するとできあがりである。

ttsshを立ち上げると下記のようにプロトコルを聞かれるのでSSH を選ぶ。

そのホストに初めて接続する場合は、以下のようにknown_hostに登録するか聞かれるので "Add this ..."をチェックしてContinueを押します。

続いて、下記のようにpassphraseを聞かれるので入力してOKする。

これで接続完了です。

TTSSHによるPortFowarding

TTSSHを使うと特定のPortをSSHを経由して 特定のリモートホストのポートにフォワードすることができる。 pop3を転送するときのイメージは以下のような感じである。

+-----------+    +-----------------+    +----------------+    +-----------+
|pop3 client|<-->|TTSSH PortForward|<-->|sshd PortForward|<-->|pop3 server|
+-----------+    +-----------------+    +----------------+    +-----------+
localhost:110<-->110              23<-->23             110<-->remotehost:110
    

一旦localhostのTTSSHのport 110がlocalhostの接続を受け付けてそれをSSHで remotehostのport 23に接続する。 remotehostのsshdは23を受け取ったらport 110にアクセスする。

今回は、POP3とSMTPをフォワードする。

TTSSHを起動して、メニューバーの 「Setup->SSH Forwarding...」を選択すると 下記のようにForwarding Setupダイアログが開くので「Add」ボタンをくりっくする。

次のダイアログで以下のようにpop3をmail.bigforest.hn.orgのpop3に 転送するように設定する。

smtpも同じように設定する。

メールクライアントソフト(例えば、Outlookなど)で、pop3サーバと smtpサーバをlocalhostと設定しておけばmailの送受信が暗号化されて行なわれる。

これで、TTSSHが立ち上がっている間はPortForwardingしてくれる。 TTSSHを立ち下げると設定がクリアされてしまうので、 「Setup->Save setup」でTERATERM.ini以外の名前 (例えばmail_forward.ini)で保存しておき、 次回立ち上げ時に「Setup->Restore setup」で設定をロードすればよい。

注意したいのは同じポートがそのまま違うサーバにフォワードされてしまうので、 例えば、POP3でいろいろなサーバとやりとりしたい場合は、 その度に設定を変更しなければならない。 メールソフトにポート番号を変える機能がついていて、例えば、 localhostの10000がhoge.com:pop3に10001がmoke.com:pop3に転送するという 設定ができればいいが、そのようなソフトはみたことない。

もどる


Kenji Ohmori
Last modified: Tue May 31 01:59:29 JST 2005