DSAキー生成

キー生成の流れ

DSA認証ログインのためには、そのための「鍵」を作ります。 鍵には、「秘密鍵」と「公開鍵」がありそれぞれセットにならないと 鍵が開きません。これは南京錠とそれを開ける鍵の関係に似ています。

ログインのためには、手元のコンピュータに「秘密鍵」を置き、 ログインするサーバマシンに「公開鍵」を置きます。これを作り、実際に ログインするまでの流れは以下のようになります。

  1. roy上でキーの秘密鍵と公開鍵のペアを生成
  2. その鍵を利用したログインを許可する
  3. 秘密鍵を自宅PCに転送する
  4. 秘密鍵を用いてサーバにログインする

秘密鍵と公開鍵の生成

royにログインし、ssh-keygen コマンドで鍵を作成します。

roy% ssh-keygen -t dsa

すると、パスフレーズを聞いて来るので 必ず15文字以上のローマ字の文章を入力します。長さに上限は ないので、自分が覚えていられる文章を入れるようにしましょう。

Enter passphrase (empty for no passphrase): 15文字以上のパスフレーズ
Enter same passphrase again: 同じものをもう一度入れる

これにより ~/.ssh/ ディレクトリに秘密鍵と公開鍵ができます。

roy% ls -l ~/.ssh
total 2
-rw-------  1 c102345  736 Dec 23 01:59 id_dsa
-rw-r--r--  1 c102345  616 Dec 23 01:59 id_dsa.pub

id_dsaファイルが秘密鍵で、 id_dsa.pubファイルが公開鍵です。

鍵を利用したログインを許可

公開鍵を authorized_keys ファイルに登録すると その鍵でログインできるようになります。そのためには以下のようにします。

roy% cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

これでサーバ側での準備は完了です。

秘密鍵を自宅PCに転送する

秘密鍵ファイル、id_dsa を自宅のPCに転送します。 好きな方法で構いませんが、

のいずれかが簡単でしょう。ただし、後者の場合他人にもれないように 厳重に注意しましょう。

今度は自宅PCでの設定です。

SSH関連のファイルをいれるためのディレクトリを作りましょう。

% cd
% mkdir .ssh   (←ピリオド s s h)
% chmod 700 .ssh

ここに秘密鍵ファイル id_dsa をコピーし、他人には 読めないようにします。

% cp コピー元/id_dsa ~/.ssh
% chmod og-r .ssh/id_dsa

上記の例のコピー元には、フロッピーなど 秘密鍵を移動して持って来たディレクトリを指定します。 以上で全ての準備は完了です。

秘密鍵を用いてサーバにログインする

サーバマシンにログインしましょう。コンピュータがインターネットに繋がっ ていることを確認し、

% ssh -p ポート番号 ユーザ名@roy.koeki-u.ac.jp

とします。上記の例のポート番号 には学外接続申請時に受け取っ た紙に書いてある「ポート番号」を、ユーザ名 には大学で 利用しているときのユーザ名(c10X***)を指定します。

次回からもっと楽にログイン

上記の通り、

% ssh -p ポート番号 ユーザ名@roy.koeki-u.ac.jp

とすれば、いつでもサーバマシンにログインできますが、 ~/.ssh/config ファイルを作成し、以下のような内容を書き加え ておくと ssh roy だけでログインできるようになります。

~/.ssh/config

Host roy
  HostName roy.e.koeki-u.ac.jp
  Port ポート番号
  User ユーザ名
  Compression       yes
  CompressionLevel  6

最後の2行は必須ではありませんが、書いておくと圧縮通信が行なわれるので、 速度が向上する場合があります。


roy.e.koeki-u.ac.jp