ssh を使う


ssh

ssh(Security Shell)は、暗号と認証を提供して、セキュリティを強化する ソフトウェアです。この ssh を従来のサービスと置き換えることで、安全な 遠隔ログインやファイル転送を実現することができます。ssh を使用してやり取り されるデータは暗号化されているため、途中経路での盗聴防止、改ざん防止が行える 他、高度な認証機能によって侵入者によるなりすましの防止も行えます。

sshのインストール

ssh のアーカイブは以下の FTP サイト
ftp://ftp.cs.hut.fi/pub/ssh
よりダウンロードできます。
ここでは、電気・情報工学科の anonymous FTP サーバより、 ssh-1.2.26.tar.gz を入手しました。ソースファイルを入手したら 解凍・展開し、ディレクトリを移動します。
% tar xvfz ssh-1.2.26.tar.gz
% cd ssh-1.2.26
インストールは簡単で、以下のように configure スクリプトを実行し、 make , make install を実行します。
% ./configure
% make
% su
Password:
# make install
作業が終了すると、各種プログラムがインストールされますが、同時に ssh の 設定ファイルや、インストールしたホストの RSA 鍵も作成されます。
/etc/ssh_config       : sshクライアントの設定ファイル
/etc/sshd_config      : sshデーモンの設定ファイル
/etc/ssh_host_key     : ホストのRSA秘密鍵
/etc/ssh_host_key.pub : ホストのRSA公開鍵
これで ssh のサーバ側のインストールは終了です。 インストールが終了したら sshd デーモンを起動します。
# sshd
エラーが出ずに sshd が起動するようなら、クライアントマシンから ssh を使用して ログインできることを確認します。
正常に sshd が動作しているようなら、システムの起動時に、sshd が自動的に 起動するように /etc/rc.local に以下の内容を追加します。 下記は FreeBSD の場合です。
#
# Starting Security Shell
#
if [ -f /usr/local/sbin/sshd ]; then
     echo -n 'Starting Security Shell:'
     /usr/local/sbin/sshd
     echo ' sshd.'
fi
以上で ssh のインストールは終了です。

Windows で ssh を使う

Windows マシンのようなクライアントマシンで ssh を利用するには、専用の ソフトウェアが必要になります。Windows 環境で使用できる ssh に対応した ソフトウェアについてはいろいろありますが、ここでは、有名なターミナルソフトで ある Tera Term Pro に TTssh という拡張モジュールを組み込んで Tera Term Pro を ssh に対応させ、ssh を使えるようにする方法を紹介します。
まず、Tera Term Pro と TTssh をダウンロードします。
Tera Term Pro    http://hp.vector.co.jp/authors/VA002416
TTssh            ftp://ftp.htp.org/pub/crypto/ssh/ttssh
ここでは ttermp23.zip と ttssh15.zip をダウンロードしました。

まずは Tera Term Pro 2.3 をインストールします。ttermp23.zip を適当な ディレクトリに展開して、その中にある setup.exe を実行します。後は質問に 答えるだけでインストールは終了です。

次に TTssh をインストールします。ttssh15.zip を適当なディレクトリに解凍し、 できたファイル全てを Tera Term Pro をインストールしたディレクトリにコピー するか、直接 Tera Term Pro をインストールしたディレクトリに解凍します。

次に、環境変数 teraterm_extensions を設定します。c:\autoexec.bat に
set teraterm_extensions=1
を追加して再起動します。

使用方法は、まず Tera Term Pro を起動し、Host に sshd が動いている UNIX マシン のホスト名(又は IP アドレス)を入力し、Service で ssh を選び、TCP port#: に 22 を入力し、OK を押します。
次に ssh Authentication のウィンドウが出るので、ユーザ名とパスワードを入力 すれば ssh で接続できます。
一見、普通に telnet をしているように見えますが、実際にやり取りされる データは全て暗号化されています。

RSA認証モード

ssh の認証方法にはユーザパスワード認証モードと、RSA認証モードがあります。 ユーザパスワード認証モードでは、ユーザ名とパスワードにより認証を行いますが、 RSA認証モードではパスワードを使用せず、RSA公開鍵暗号方式を利用します。
ユーザパスワード認証モードでは、全て暗号化されるため、パスワードが盗聴される 危険性はなくなりましたが、もし、何らかの手段でパスワードが漏れてしまった 場合は、たとえ ssh を利用していても不法侵入されてしまいます。これを防ぐための ものが RSA認証モードです。
RSA認証モードでは、RSA公開鍵暗号方式を使用するため、自分の秘密鍵の管理さえ しっかりしていれば、侵入者によるなりすましを防ぐことができます。

鍵の作成

それぞれのマシンで以下の鍵が保存されている必要があります。
サーバマシン       : サーバの秘密鍵、クライアントの公開鍵
クライアントマシン : サーバの公開鍵、クライアントの秘密鍵
サーバに ssh をインストールした時点で、サーバの公開鍵と秘密鍵は生成されて いますので、クライアントの公開鍵と秘密鍵を作成します。鍵の作成は、 ssh-keygen コマンドで以下のように行います。
% ssh-keygen
ssh-keygen  ssh-keygen1 
funah03>ssh-keygen
Initializing random number generator...
Generating p:  ..........++ (distance 164)
Generating q:  ..............++ (distance 286)
Computing the keys...
Testing the keys...
Key generation complete.
Enter file in which to save the key (/home/sakai/.ssh/identity): 
Enter passphrase:                    パスフレーズを入力
Enter the same passphrase again:     確認のため再度パスフレーズを入力
Your identification has been saved in /home/sakai/.ssh/identity.
Your public key is:
.....
.....
Your public key has been saved in /home/sakai/.ssh/identity.pub
以上により、~/.ssh ディレクトリに2つの鍵ファイルが生成されます。
~/.ssh/identity     : 秘密鍵ファイル
~/.ssh/identity.pub : 公開鍵ファイル
生成された鍵ファイルのうち、公開鍵ファイル(~/.ssh/identity.pub)を、 ~/.ssh/authorized_keys にコピーします。複数のクライアントで鍵を作成した場合は、 ~/.ssh/authorized_keys に複数の公開鍵を保存します。
以上で鍵の作成は終了です。
クライアントマシンから ssh でログインするときは、 鍵を作成するときに入力したパスフレーズを入力します。なお、このパスフレーズの 入力を省略したいときは、ssh-keygen コマンドで鍵を作成する場合に、 パスフレーズに何も入力せずに作成するか、以下のように
% ssh-keygen -N ''
として作成し、作成された公開鍵(~/.ssh/identity.pub)を ~/.ssh/authorized_keys にコピーします。

クライアントに Windows を使用している場合は、先程インストールしたTera Term Pro で、Host、Service、TCP port#: を入力して SSH Authentication ウィンドウを 表示させます。そこで、Use RSA key to log in を選択し、その横にあるフィールドに サーバからコピーした秘密鍵ファイル(~/.ssh/identity)を指定し、User Name 及び Passphrase を入力します。
ユーザパスワード認証モードと見た目は変わりませんが、秘密鍵とそのパスフレーズを 知らなければ、どこからも接続できません。

戻る

sakai@oak.eg.t.kanazawa-u.ac.jp
Last modified: Thu Jan 6 17:44:53 JST 2000