センリュウのホームページへ ようこそ!
SSHで安全通信 openSSH
openSSHは、ほとんどのディストリビューデョンで、デフォルトでインストールされていると思います。
使用ポートは、TCP/22。
linux SSHサーバー(TurboLinux8の例)
必要パッケージは、openssh、openssh-serverとopenssl。
設定
/etc/sysconfig/sshd
起動時に引き渡されるパラメータをここに記入しておく。デフォルトではこのファイルはないので、必要なときは作成する。
/etc/ssh/sshd_config
デフォルトのままで、ほとんどの環境に対応できるようになっている。
接続を特定のアドレスに制限したいときは、ListenAddressに書き込む。
また、turboLinux8ではTCP Wrapperに対応するようにコンパイルされているので、この設定も必要。
/etc/hosts.allow
sshd :ALL
linuxクライアント
必要パッケージは、opensshとopenssh-clients。
●ユーザーごとに鍵セット(秘密、公開)を作成する。
SSHプロトコルver2で利用するDSA暗号の鍵セットを作成する場合
# ssh-keygen -t dsa
この鍵セットで利用するパスフレーズを入力する。
デフォルトでユーザーのホームに~/.ssh/id_dsaとid_dsa.pubが作成される。
SSHプロトコルver2で利用するRSA暗号の鍵セットを作成する場合
# ssh-keygen -t rsa
~/.ssh/id_rsaとid_rsa.pubが作成される。
SSHプロトコルver1で利用するRSA暗号の鍵セットを作成する場合
# ssh-keygen -t rsa1
~/.ssh/identityとidentity.pubが作成される。
●公開キーをSSHサーバーに設置する。
TurboLinux8の標準設定では、サーバーの~/.ssh/authorized_keys(SSHプロトコルver1)、authorized_keys2(SSHプロトコルver2)にインストールする。
# cat id_dsa.pub >> authorized_keys2 (SSHプロトコルver2の場合)
# cat identity.pub >> authorized_keys (SSHプロトコルver1)
# chmod 755 /home/foo/.ssh
複数の公開キーを1つのファイルに保存することもできるので、複数の鍵セットが利用できる。
●使用
$ ssh [オプション] ホスト名(またはIPアドレス)
使い方はtelnet、rloginとほとんど同じ。
ローカルホストのユーザー名と接続先のユーザー名が異なる場合は、-l オプションを利用して-l userとするかuser@hostの形式でアクセスする。
その他のオプションとしては、-1はSSHプロトコルver1、-2はSSHプロトコルver2、-c 3des|blowfishは暗号方式等々。
例 $ ssh 192.168.0.1
あと、scpやsftpなどが使える(rcpやftpとほとんど同じ)。
windowsクライアント
PuTTY(ver0.58)
PuTTYは、SSH1とSSH2を実装。また、PuTTYgenというプログラムを用いて公開鍵(id_dsa.pub)・暗号鍵(id_dsa)を作る事が出来ます。
http://www.chiark.greenend.org.uk/~sgtatham/putty/より各ファイルをダウンロードし、任意のフォルダに保存。
これだけでPuTTY・PuTTYgenのインストールは完了。
SSH2のDSA認証方式を採用した場合について。
●PuTTYgenを使って鍵を作る。
まず、PuTTYgenを起動。
Parameters項目で、作る鍵のタイプを指定。ここでは一番右端のSSH2 DSAを選択。
選択したら、Action項目のGenerateをクリック。
Key項目の空いているスペースの中でマウスを適当に動かすと、パスフレーズの乱数が作られる。
key passphrase に任意のパスフレーズを入力。
続けて、Confirm passphrase にkey passphraseで入力したのと同じパスフレーズを入力。
鍵の保存
まずpublic keyボタンを、押して公開鍵を保存し(拡張子はわかりやすいように.pubにでもしておく)。
次に、private keyボタンを押して、秘密鍵を保存。秘密鍵は拡張子が.ppkになる。
●作った公開鍵をリモートホスト(SSHサーバー)上にアップロードする。
ffftpなどを使って、~/.ssh/ディレクトリに保存する。
.ssh ディレクトリがない場合、作成する。
●送った公開鍵を加工してauthorized_keys2 ファイルに加える。
まず、PuTTYを起動して、session windowを開く。
接続するホストを記入し、SSH を選択。記入し終わったらOpen をクリック。
login as: には、アカウント名を記入し、password
にはパスワードを入力。
Windowsで作って送った公開鍵をUNIX系OSでも読めるようにする。
cd ./.ssh
ssh-keygen -i -f mykey.pub >> mykey.pub.after
これでmykey.pub をUNIX系OSで読めるよう加工したmykey.pub.after
ができる。
UNIX系OSで読めるようになった鍵をリモートホストに保存する。
cat mykey.pub.after >> authorized_keys2
●使用 PuTTYを使ってDSA認証
PuTTYを起動。
Session Windowを開いてHostNameにアクセスするホスト先を記入。ProcotolでSSHを選択。
ConnectionのData Windowを開いて、Auto-login usernameにユーザー名を入力。
SSH Windowを開き、Preferred SSH protocol version を2にする。
更に、SSH の下にあるAuth Window を選択。
Authentication parameters のPrivate key file for authentication:にDSAの秘密鍵を置いてある場所を入力。
Browse...を押して、選択した方が簡単。
設定を保存する。
Session Windowに戻り、下のほうのLoad,save or delete a stored sessionという項目のSaved Sessionsに適当な名前を入れて、Saveボタンを押す。
これ以後は、ダブルクリックするだけsessionが始まる。
ログイン
次のような画面が出てくる。
Using username "username".
Authenticating with public key "鍵の名前"
Passphrase for key "鍵の名前": ←ここにパスフレーズを入力する。
パスフレーズを間違いなく打ち込んだらenterキーを押す。
これでログイン完了。
履歴 2005/04 作成