SSHD(暗号化TELNETサーバ)を使ってみる
Modified: 1 March 2003
リモートでTelnetを使うと、パスワードや対話の様子を容易に盗聴できるようです。そのことから、リモートでTelnetを禁止するというのが常識になっています。
とはいえ、使いたい場合もあります。そんなニーズにこたえて対話のデータを暗号化して、盗聴を困難にするソフトがあります。
運用のためには、サーバー側とクライアントの両方に対応したソフトをインストールする必要があります。
実験には、SSHというLinuxのクライアントソフトのほか、Windowsの定番のフリーのターミナルソフトである、TeraTermも使って見ました。TeraTermをSSHに対応させるにはTTSSHというソフトを混ぜて使えばいいようです。
Redhat Linux 7.3では、標準で同梱されています。
サーバーのインストールと設定
SSHD(SSHのサーバー)を設定してみる
RSA暗号を使ってログインする
Windowsのクライアントによる接続
SSHサーバーを設定する
Webminの「Servers」ボタンから、以下のような「SSH Server」を選択します。
Authentication の設定
大切なのは、「Allow RSA authentication?」を「Yes」にすることです。
Networking の設定
大切なのは、「Accept protocols」で、「SSH v1」にチェックし、「SSH v2」のチェックを外すことです。
Access Control の設定
ユーザは限定したほうがいいと思います。
設定を有効にする
「Apply Changes」ボタンを押し、設定を有効にします。
sshdの起動と自動再起動
Webminを起動し、"System"ボタンを押し、"Bootup and Shutdown"をクリックし、リストの中から、以下のように、"sshd"をクリックします。
"sshd"をクリックすると、起動、停止、再起動ができます。
SSHによる暗号化のなかでもっとも安全なのは、RSAという公開鍵と秘密鍵を使ってログインする方法です。
この暗号キーをWebmin上で作る方法はわかりませんでしたので、コマンドで作成しました。
暗号キーペアの作成
まずは、サーバー側で、暗号キーペア(公開鍵と秘密鍵)を作成します。
暗号キーペア(公開鍵と秘密鍵)の作成には、ログインさせるユーザのホームディレクトリに移動し、は、"ssh-keygen" のコマンドで作成します。
パスフレーズ(passphrase)は、長いパスワードのことです。10文字から30文字の間にすべきといわれています。
$ ssh-keygen -t rsa1
Generating public/private rsa1 key pair.
Enter file in which to save the key (/home/tomo/.ssh/identity): <Enter>
Created directory '/home/tomo/.ssh'.
Enter passphrase:*******************
Enter the same passphrase again:*******************
Your identification has been saved in /home/tomo/.ssh/identity.
Your public key has been saved in /home/tomo/.ssh/identity.pub.
The key fingerprint is:
d1:a5:8e:68:c2:eb:53:d3:94:5e:5d:0f:07:ae:42:43 tomo@rh72server
$ホームディレクトリを、"/home/tomo" とすると、作成された公開鍵は、
/home/tomo/.ssh/identity.pub
秘密鍵は、
/home/tomo/.ssh/identity
に作られます。
以下のように、ファイル名を変更します。
$ cd ~/.ssh
$ cp identity.pub authorized_keys
$ chmod go-rwx authorized_keys
クライアントのWindowsPCにキーをコピーする
作成した暗号キーペアの秘密鍵、"identity"を、FDなどで、WindowsPC内の、TeratermProをインストールしたフォルダにコピーします。
私の場合、TeratermProをデフォルトのフォルダにインストールしたので、
C:\Program Files\TTERMPRO
にコピーしました。
ttSSHでログインしてみる
以下のように、”ttssh.exe” に、ホストアドレスとポート(22)を指定して起動します。
C:\TOOLS\TTERMPRO\rhserver\ttssh.exe rh72server:22 起動すると、以下のダイアログが出てきます。
「Use RSA key to login」にチェックを入れ、「Private key file」ボタンを押して、コピーした秘密鍵である”identity”を指定し、「OK」ボタンを押します。
インストールの後の最初の起動の場合、以下のメッセージが出ますので、チェックを入れて、「Continue」ボタンを押します。
「Use RSA key to login」にチェックを入れて、「Private key file」ボタンを押し、先にコピーした、秘密鍵のファイル(identity)を指定して、「OK」ボタンを押します
ちょっと解説
SSHでログインする場合は、秘密鍵でパスワードを暗号化して、サーバーに送ります。サーバー(sshd)では、公開鍵で解読してパスワードの認証を行います。
これは、いわゆる署名に機能ですから、サーバーがログインしてくるユーザの確認ができます。つまり、サーバが許可したユーザしか持っていない秘密鍵で暗号かされていることが確認できるからです。
つまり、ログインする場合、他人に公開していない秘密鍵がないとログインできません。サーバーには、公開鍵があればログインできますので、サーバーの秘密鍵を削除しておけば、サーバが仮に覗かれても、秘密鍵が盗まれる心配はありません。
TeraTerm+TTSHH(クライアントソフト)をインストールする ![]()
TeraTermをダウンロードしてインストールする
http://hp.vector.co.jp/authors/VA002416/teraterm.html
上記から、ttermp23.zip をダウンロードして、解凍し、setup.exe を実行してインストールします。
TTSSHをダウンロードし、インストールする
http://www.zip.com.au/~roca/ttssh.html
上記から、ttssh154.zip をダウンロードして、解凍します。
解凍後、TeratermProをインストールしたディレクトリ(私の場合、\Program Files\ttermpro)と同じディレクトリに、全部上書きコピーします。最低限、libeay32.dll、ttxssh.dll、ttssh.exeの3つをコピーします。