本センターについて

研究活動

利用案内

学内専用コンテンツ

利用者へのアドバイス

セキュリティ情報

地域連携・貢献情報

リンク集

サイト内検索


HOME > SSHで鍵認証を使う方法

SSHで鍵認証を使う方法

自宅や外出先から研究室のサーバへリモートログインできるようにSSHサーバを運用している研究室も多いと思います。
とても便利な反面、様 々な攻撃にもさらされることになります。特に、最近はパスワード総当たり攻撃が非常に多くなっています。SSHの認証がパスワード認証の場合、通信路が暗 号化されていてパスワードが盗聴困難となっていますが、接続してパスワードを試してみることに対しては全くの無防備です。
そこで、パスワード認証をやめて、秘密鍵・公開鍵という2つの鍵を使用する公開鍵認証に切り替えましょう。

以下、公開鍵認証をするための設定方法等を説明しますが、想定環境は次の通りとなっています。

SSHサーバ

クライアント

目次

  1. 鍵の作成
  2. 鍵をサーバに登録する
  3. SSHサーバのパスワード認証を無効にする
  4. 鍵を使用してサーバに接続する

1. 鍵の作成

鍵認証で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を起動します。

pUTTY-1.pNG - 15,002BYTES

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

pUTTY-2.pNG - 25,822BYTES

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

pUTTY-3.pNG - 20,316BYTES

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

pUTTY-4.pNG - 27,838BYTES

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

pUTTY-5.pNG - 31,896BYTES

2.鍵をサーバに登録する

作成した公開鍵 "id_rsa.pub" をSSHサーバへ転送し登録します。
登録する場所とファイル名は $HOME/.ssh/authorized_keys となります。

% cd $HOME/.ssh
% cat id_rsa.pub >> authorized_keys

初めてファイルを作成した場合は、ファイルのパーミッションを変更します。

% chmod 0600 authorized_keys

3.SSHサーバのパスワード認証を無効にする

SSHサーバの設定ファイル "/etc/ssh/sshd_config" のpasswordAuthenticationをnoに変更し、sshd を再起動します。

passwordAuthentication no← yesをnoへ変更

# /etc/init.d/sshd restart

4. 鍵を使用してサーバへ接続する

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" → "認証" を表示する。
"参照"をクリックし、秘密鍵を指定する。

pUTTY-6.pNG - 33,545BYTES