土曜日, 1月 30, 2010

ssh公開鍵を使った接続

[概要]
Open sshの公開鍵認証を行うための設定方法を説明します。
[詳細]
  1. ssh設定確認
    1. リモート側のsshdの設定確認
      /etc/ssh/sshd_config内にパラメータ"PubkeyAuthentication"のデフォルトが"yes"なので、パラメータが存在しない、もしくは値が"yes"になっていることを確かめます。
    2. ローカル側のsshの設定確認
      リモート側と同様に/etc/ssh/ssh_config内にパラメータ"PubkeyAuthentication"が存在しない、もしくは値が"Yes"になっていることを確認します。
      同じようにパラメータ"PreferredAuthentications"について、存在しないもしくは"keyboard-interactive","password"よりも"publickey"が前になっているかについても確認します。
      なお、ローカル側の設定は、~/.ssh/configの設定が、/etc/ssh/ssh_configよりも優先されるのでユーザ毎に設定を行うことができます。
  2. 鍵の作成
    ローカルのPC上で鍵を作成します。秘密鍵のパス、パスフレーズとその確認を入力します。ちなみに、パスフレーズ(Passphrase)とは、長いパスワードと考えてください。# phrase(句)はWord(語)よりも長い。
    [root@local.localdomain ~]# ssh-keygen -b 1024 -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa):
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    a4:a0:35:45:49:16:d5:6c:cb:07:3b:89:ab:80:d9:75 root@local.localdomain

    デフォルトでは、秘密鍵は"/root/.ssh/id_rsa"として、公開鍵は"/root/.ssh/id_rsa.pub"として作成されます。
  3. 公開鍵の登録
    1. 公開鍵をリモート側にコピーします。

      [local.localdomain ~]# scp .ssh/id_rsa.pub romote.localdomain:
    2. 公開鍵をauthorized_keysに登録します。

      [remote.localdomain ~]# cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    3. authorized_keysには、自分以外のアクセス権を外します。この操作はauthorized_keysの作成時に1度だけで行えば構いません。

      chmod 600 ~/.ssh/authorized_keys
    4. リモートにコピーした公開鍵ファイルを削除します。
      [remote.localdomain ~]# rm ~/id_rsa.pub
  4. 接続確認
    リモートへの接続を確認します。"Enter passphrase "と表示されれば、公開鍵での認証が使われています。

    [local.localdomain ~]# ssh romote.localdomain
    Enter passphrase for key '/root/.ssh/id_rsa':
    Last login: Thu Jan 28 21:53:18 2010 from 192.168.1.202
    [root@romote.localdomain ~]#

以上で公開鍵認証の設定の説明は終了です。

0 件のコメント: