SSHで鍵認証を使う方法
自宅や外出先から研究室のサーバへリモートログインできるようにSSHサーバを運用している研究室も多いと思います。
とても便利な反面、様
々な攻撃にもさらされることになります。特に、最近はパスワード総当たり攻撃が非常に多くなっています。SSHの認証がパスワード認証の場合、通信路が暗
号化されていてパスワードが盗聴困難となっていますが、接続してパスワードを試してみることに対しては全くの無防備です。
そこで、パスワード認証をやめて、秘密鍵・公開鍵という2つの鍵を使用する公開鍵認証に切り替えましょう。
以下、公開鍵認証をするための設定方法等を説明しますが、想定環境は次の通りとなっています。
SSHサーバ
- OpenSSH (linux)
クライアント
- OpenSSH (linux, MacOS X)
- TeraTerm (Windows)
- puTTYごった煮版
目次
鍵認証でSSHサーバへ接続するには、各ユーザ毎に鍵を準備します。
OpenSSHの場合
コマンドラインから、次のコマンドを実行します。
(コマンドオプションの "-C" に続く "Comment" は公開鍵のコメントに使用されます。なくてもかまいません。)
鍵を保存する場所とファイル名を指定することもできますが、デフォルトでよければ、[ENTER]を押します。
% ssh-keygen -C Comment Generating public/private rsa key pair. Enter file in which to save the key (/Users/imit/.ssh/id_rsa): ←[ENTER]を入力 |
続いて、パスフレーズを入力し、鍵を作成します。
Created directory
'/Users/imit/.ssh'. Enter passphrase (empty for no passphrase): ← パスフレーズを入力 Enter same passphrase again: ← パスフレーズを再入力 Your identification has been saved in /Users/imit/.ssh/id_rsa. Your public key has been saved in /Users/imit/.ssh/id_rsa.pub. The key fingerprint is: 56:bf:8e:87:73:0a:6d:9e:04:9f:dd:24:5d:5f:c6:57 Comment % |
作成された鍵を確認します。鍵は$HOME/.ssh/に作成されます(デフォルト)。
秘密鍵はクライアントで使用し、公開鍵はサーバ側で使用します。
% ls $HOME/.ssh/ id_rsa id_rsa.pub % |
TeraTermの場合
TeraTermのメニューから "設定(S)" → "SSH鍵作成(N)"を選択し、鍵作成ツールを起動します。

"生成"をクリックすると鍵が作成されます。
パスフレーズを入力して、公開鍵と秘密鍵を保存します。
必ずパスフレーズを入力してから鍵を保存すること!

puttyの場合
"スタートメニュー" → "すべてのプログラム" → "puTTYごった煮版" から puTTYgenを起動します。

"作成"をクリックすると、次のような画面になるので、マウスを適当に動かし、鍵を作成します。

下のような画面になるまでマウスを動かします。

"鍵のコメント"を名前やニックネームなどわかりやすいものに変更します。
パスフレーズを入力します。

"秘密鍵の保存"をクリックし、秘密鍵を保存します。
メモ帳等を開き、上部に表示されている公開鍵をコピペして保存します。

作成した公開鍵 "id_rsa.pub" をSSHサーバへ転送し登録します。
登録する場所とファイル名は $HOME/.ssh/authorized_keys となります。
% cd $HOME/.ssh % cat id_rsa.pub >> authorized_keys |
初めてファイルを作成した場合は、ファイルのパーミッションを変更します。
% chmod 0600 authorized_keys |
SSHサーバの設定ファイル "/etc/ssh/sshd_config" のpasswordAuthenticationをnoに変更し、sshd を再起動します。
passwordAuthentication no← yesをnoへ変更 |
# /etc/init.d/sshd restart |
OpenSSHの場合
作成した秘密鍵が $HOME/.ssh/id_rsaとして存在すると、自動的に鍵を使用した接続を行います。
% ssh USER@HOST Enter passphrase for key '$HOME/.ssh/id_rsa': ←パスフレーズを入力 USER@HOST% ←SSHサーバにログイン |
TeraTermの場合
SSH接続認証画面で、"RSA/DSAを使う" を選択します。
秘密鍵ボタンをクリックし、作成した秘密鍵を選択します。

puTTYの場合
接続時の設定画面で、左側ツリーメニューの"接続" → "SSH" → "認証"
を表示する。
"参照"をクリックし、秘密鍵を指定する。
