技林TOP > 自宅サーバ構築メモ > SSH について


≫SSH とは

SSH とは、Secure SHell の略で、Telnet と同じようにサーバを遠隔(リモート)操作することが可能です。

Telnet がその通信内容を平文でやり取りするのに対して、SSH は通信を暗号化することで安全性の高い操作を実現しています。

リモート操作では、ログインパスワードやサーバの情報など大切な情報を扱うことが多いので、できるだけ Telnet は使用せず、SSH を使いましょう。

SSH は、サーバ側の設定はもとよりクライアント側でも多少の設定が必要です。これは、暗号化のためのキーをサーバ側とクライアント側の双方で持たなければならないためです。

設定さえ済めば、日頃の操作は Telnet も SSH も変わりません。

慣れてくれば、サーバの管理作業のほとんどをこの SSH を使って行うようになると思います。

≫SSH のインストール

SSHがあるかどうか。

# rpm -qa | grep openss


openSSH と openSSL が入ってれば問題ナシ。

rpmの場合
# rpm -ivh open*


aptの場合
# apt-get install ssh


tar からのチャレンジャーは…
OpenSSL
# tar xvfz ssl-X.X.XX.tar.gz
# cd ssl-X.X.XX
ssl-X.X.XX# ./configure
ssl-X.X.XX# make
ssl-X.X.XX# make test
ssl-X.X.XX# make install
OpenSSH
# tar xvfz ssh-X.X.XX.tar.gz
# cd ssh-X.X.XX
ssh-X.X.XX# ./configure
ssh-X.X.XX# make
ssh-X.X.XX# make install


SSHの入っていないディストリってあるのだろうか?

≫SSHdの設定

Webmin で設定します。

[サーバ] - [SSH Server] - [Authentication]

「Allow RSA authentication?」で 「◎はい」 を選択します。「保存」

[サーバ] - [SSH Server] - [Networking]

「Listen on addresses」で「◎Entered below ..」を選択し、すぐ下のフォームの「Address」にアクセスするIPアドレスを入力、「Port」は「◎デフォルト」でOKです。

同じく「Accept protocols」で「SSH v1」をチェックします。「保存」

[サーバ] - [SSH Server] - [Access Control]

「Only allow users」テキストボックスにログインするユーザ名を記入します。複数記入する場合は、半角スペースで区切ります。「保存」

[SSH Server] の画面左下の「Apply Changes」で設定を有効にします。

続いて、マシン起動時に SSHd が自動的に立ち上がるように設定しましょう。

Webmin で設定するなら

[システム] - [起動及びシャットダウン]

□sshd をチェックして、「Start Selected」ボタンを押す。

コンソールで設定するなら

# ntsysv


[*] sshd

ちなみに、設定ファイルを直接いじりたいという方は /etc/ssh/ の中を覗いてみて下さい。

≫SSHクライアント

Windows 前提ですが、3つほど。
  • Tera Term Pro(日本語版) + TTSSH(日本語版)
    SSHクライアントソフトの代表。SSHv1のみのサポート。
  • WinSCP(日本語)
    SSH を使用して安全にファイル転送できるソフト。SSH 版 FTPのようなもの。
  • PuTTY
    SSHv2 をサポートした端末エミュレータ。キー生成、SJIS対応。

≫RSA暗号キーを作成

Tera Term Pro + TTSH で、SSHd を利用する際にユーザ認証をRSA暗号を使って行うために暗号キーをサーバ側とクライアント側双方に設置します。

まずは、DSA暗号キー生成。

# ssh-keygen -t dsa


ずらずらっと英文が出てきて、

Enter passphrase (empty for no passphrase):

と入力待ちになったらパスフレーズを入力する。これは認証用のパスワードのようなもの。

Enter same passphrase again:

同じ物を再入力。

またずらずらっと英文が出てきて終了。

次に RSA暗号キーの生成。

# ssh-keygen -t rsa


先ほどと同じようにパスフレーズを2回入力して終了。

ユーザディレクトリの中の /.ssh/ というフォルダが出来ていると思います。

さらにその中に

identity.pub
identity

というふたつのファイルが出来ていると思います。
identity.pub がいわゆる公開鍵。identity がいわゆる秘密鍵というものです。
identity は秘密鍵という名の通り秘密にしなければなりません。決して外部に公開されるような場所に置いたりしてはいけません。

identity.pub は同じディレクトリに authorized_keys という名前でコピーしておきます

.ssh# cp identity.pub authorized_keys


これで、サーバ側の設定はひとまず終了。

続けて、先ほど作った秘密鍵 identity をクライアントに設置します。

設置するのは、Tera Term Pro のインストールフォルダの中です。

例えば、C:\Program Files\ttermpro\identity

次に、Tera Term Pro を起動します。

とりあえずキャンセルします。

メニューから [Setup] - [SSH] を選択。

[SSH Known Hosts] の [Read/write file:] を選択し、右のテキストボックスは例えば C:\Program Files\ttermpro とします。

「OK」

次に、今度はメニューから [Setup] - [SSH Authentication] を選択。

[User name] のテキストボックスにはログインするユーザ名を入力。

[◎Use RSA key to login] をチェックし、[Private key file:] には 先ほどの identity ファイルを指定します。

「OK」

最後に、メニューから [Setup] - [Save setup..] を選択。

以上で、暗号キーの設定は終了です。

いったん Tera Term Pro を再起動して、ログインできるか試してみましょう。

≫参考サイト

(C) bayashi.net