前回の続きです。
さて、鍵方式でのログインを可能にするためには、サーバ側クライアント側双方に設定が必要となります。その際に用いるソフトウェアにおいて、sshの方式の違いがあり、設定方法が変わってきます。まずは現在使われる方式の解説から。
以下は設定にはあまり関係ありませんが、知識としてざっくりと。現在主に用いられているソフトウェアとして、サーバ側、クライアント側ともに2系列存在します。
OpenSSH サーバ
ssh2 サーバ
OpenSSH クライアント
ssh2 クライアント
Openssh とは、SSH の FREE バージョンです。プロトコル1と2が利用でき、ssh1 と ssh2 に該当すると言えます。
今回は、openssh-server の導入と言うことで、サーバ側は OpenSSH に限った設定と言うことで話を進めます。今回の例ではクライアント機はWindowsマシンです。
1)クライアント側が OpenSSH に対応している場合の設定
例 UTF-8 TeraTerm Pro with TTSSH2 を使う
2)クライアント側が ssh2 に対応している場合の設定
例 WinSCP(PuTTY) を使う
以上二つのパターンが考えられます。
1)クライアント側が OpenSSH に該当する場合の設定
まずはサーバ側で鍵を作成します。鍵を作成するユーザになって下さい。
以下三通りのコマンドがありますが、一番下のプロトコルバージョン2のDSA鍵が最も安全性が高いそうです。
・プロトコルバージョン1のRSA鍵
ssh-keygen -t rsa1
・プロトコルバージョン2のRSA鍵
ssh-keygen -t rsa
・プロトコルバージョン2のDSA鍵
ssh-keygen -t dsa
上記コマンドを入れますと、問い合わせが三回ありますが一度目はそのままENTERキー、二度目と三度目は任意のパスワードを入れてください。作成に成功すると、以下のディレクトリに公開鍵と秘密鍵が生成されます。
/home/ユーザ名/.ssh/
公開鍵を鍵束に追加します。
cat /home/ユーザ名/.ssh/id_dsa.pub >> /home/ユーザ名/.ssh/authorized_keys
鍵束にパーミッションを設定します。
$chmod 600 /home/ユーザ名/authorized_keys
公開鍵を削除します。
$rm /home/ユーザ名/.ssh/id_dsa.pub
ここまでがサーバ側の鍵の設定です。
前述の鍵生成コマンドによって、 ~/.ssh 内に秘密鍵 id_dsa が生成されています。これをクライアント側に渡します。
ローカルエリア内であればFTPなどのネットワークを用いてもいいのですが、WANを経由したやり取りは極力控え、FDやUSBメモリでやり取りしましょう。
クライアント側には、UTF-8 TeraTerm Pro with TTSSH2 がインストールされているものとします。窓の杜にあります。
ログインの際、「Use RSA/DSA key to log in」にチェックをつけ、 「Private key file」を押下し、先ほど準備した秘密鍵のファイル「id_dsa」を選択します。後は普通にユーザ名とパスワードを入力すればOKです。
2)クライアント側が ssh2 に該当する場合の設定
クライアントに WinSCP を用いる場合です。WinSCPが導入済みであるとします。以下が公式です。Multilanguage installation package をDLすると良いでしょう。
http://winscp.net/eng/download.php
クライアント側で鍵を作成します。
スタートメニュー → 全てのプログラム → WinSCP → PuTTYgen
を選択します。Parameter欄で暗号方式を選び、Generateで生成開始です。先ほどの例と同じように、今回はDSA方式を選択するものとします。マウスを動かすことで暗号を生成する仕組みになっているそうです。
「Save public key」「Save private key」をそれぞれ選択し、任意の場所に任意の名前で保存します。今回は、公開鍵を「id_dsa_1024_a.pub」、秘密鍵を「id_dsa.ppk」とします。
公開鍵をサーバにコピーします。先ほどの例のように極力オフラインから持ち込みましょう。以下に保存します。
/home/ユーザ名/.ssh/
OpenSSH用の公開鍵に変換し、同時に鍵束の追加をします。
$/home/ユーザ名/.ssh/ssh-keygen -X -f id_dsa_1024_a.pub >> /home/ユーザ名/.ssh/authorized_keys
これで鍵の準備は整いました。WinSCPからアクセスする際に、先ほどの秘密鍵「id_dsa.ppk」を「秘密鍵」欄に追加してアクセスします。
今回のまとめとしますと、sshサーバに openssh-server を用いる場合、
・クライアントに OpenSSH を用いる場合、鍵をサーバ側で作成
・クライアントに ssh2 を用いる場合、鍵をクライアント側で作成し、サーバ側で公開鍵の変換を行うということになります。
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/53602312
この記事へのトラックバック
http://blog.seesaa.jp/tb/53602312
この記事へのトラックバック