Product SiteDocumentation Site

9.2.4. キー認証の使用

システムのセキュリティをさらに向上させるために、標準的なパスワード認証を無効にすることにより、キーによる認証を強制できます。そうするために、テキストエディターで /etc/ssh/sshd_config ファイルを開いて、PasswordAuthentication オプションを以下のように変更します:
PasswordAuthentication no
サーバーにクライアントから接続するために ssh, scp, や sftp を使用できるようにするには、以下の手順に従って認可キーペアを生成します。キーは各ユーザーがそれぞれ生成しなければいけないことに注意してください。
Fedora 16 はデフォルトで SSH プロトコル 2 および RSA キーを使用します(詳細は 「プロトコル・バージョン」 を参照してください)。

キーペアを root として生成しない

手順を root として完了したならば、root のみがキーを使えるようにします。

~/.ssh/ ディレクトリのバックアップ

システムを再インストールして、前に生成したキーペアを維持したいならば、~/.ssh/ ディレクトリをバックアップします。再インストール後、それをホームディレクトリにコピーして戻します。このプロセスは root を含めてシステムにあるすべてのユーザーに対して行うことができます。

9.2.4.1. 鍵ペアの生成

SSH プロトコルバージョン 2 用の RSA キーペアを生成するには、これらの手順に従います:
  1. シェルプロンプトにおいて以下のとおり入力することにより RSA キーペアを生成します:
    ~]$ ssh-keygen -t rsa
    Generating public/private rsa key pair.
    Enter file in which to save the key (/home/john/.ssh/id_rsa):
  2. 新しく作成するキーに対するデフォルトの位置(つまり、~/.ssh/id_rsa)を確認するために Enter を押します。
  3. パスフレーズを入力して、プロンプトが出たとき再び入力することにより確認します。セキュリティの理由により、アカウントにログインするために使用するパスワードと同じものを使用することは避けます。
    この後、これと同じようなメッセージが表示されます:
    Your identification has been saved in /home/john/.ssh/id_rsa.
    Your public key has been saved in /home/john/.ssh/id_rsa.pub.
    The key fingerprint is:
    e7:97:c7:e2:0e:f9:0e:fc:c4:d7:cb:e5:31:11:92:14 john@penguin.example.com
    The key's randomart image is:
    +--[ RSA 2048]----+
    |             E.  |
    |            . .  |
    |             o . |
    |              . .|
    |        S .    . |
    |         + o o ..|
    |          * * +oo|
    |           O +..=|
    |           o*  o.|
    +-----------------+
  4. ~/.ssh/ ディレクトリのパーミッションを変更します:
    ~]$ chmod 755 ~/.ssh
  5. ~/.ssh/id_rsa.pub の内容を接続したいサーバーの ~/.ssh/authorized_keys の中にコピーします。もしファイルがすでに存在すれば、その最後に追加します。
  6. 以下のコマンドを用いて ~/.ssh/authorized_keys ファイルのパーミッションを変更します:
    ~]$ chmod 644 ~/.ssh/authorized_keys
SSH プロトコルバージョン 2 用の DSA キーペアを生成するには、これらの手順に従います:
  1. シェルプロンプトにおいて以下のとおり入力することにより DSA キーペアを生成します:
    ~]$ ssh-keygen -t dsa
    Generating public/private dsa key pair.
    Enter file in which to save the key (/home/john/.ssh/id_dsa):
  2. 新しく作成するキーに対するデフォルトの位置(つまり、~/.ssh/id_dsa)を確認するために Enter を押します。
  3. パスフレーズを入力して、プロンプトが出たとき再び入力することにより確認します。セキュリティの理由により、アカウントにログインするために使用するパスワードと同じものを使用することは避けます。
    この後、これと同じようなメッセージが表示されます:
    Your identification has been saved in /home/john/.ssh/id_dsa.
    Your public key has been saved in /home/john/.ssh/id_dsa.pub.
    The key fingerprint is:
    81:a1:91:a8:9f:e8:c5:66:0d:54:f5:90:cc:bc:cc:27 john@penguin.example.com
    The key's randomart image is:
    +--[ DSA 1024]----+
    |   .oo*o.        |
    |  ...o Bo        |
    | .. . + o.       |
    |.  .   E o       |
    | o..o   S        |
    |. o= .           |
    |. +              |
    | .               |
    |                 |
    +-----------------+
  4. ~/.ssh/ ディレクトリのパーミッションを変更します:
    ~]$ chmod 775 ~/.ssh
  5. ~/.ssh/id_dsa.pub の内容を接続したいサーバーの ~/.ssh/authorized_keys の中にコピーします。もしファイルがすでに存在すれば、その最後に追加します。
  6. 以下のコマンドを用いて ~/.ssh/authorized_keys ファイルのパーミッションを変更します:
    ~]$ chmod 644 ~/.ssh/authorized_keys
SSH プロトコルバージョン 1 用の R\nSA キーペアを生成するには、これらの手順に従います:
  1. シェルプロンプトにおいて以下のとおり入力することにより RSA キーペアを生成します:
    ~]$ ssh-keygen -t rsa1
    Generating public/private rsa1 key pair.
    Enter file in which to save the key (/home/john/.ssh/identity):
  2. 新しく作成するキーに対するデフォルトの位置(つまり、~/.ssh/identity)を確認するために Enter を押します。
  3. パスフレーズを入力して、そうするようプロンプトが表示されたとき、入力することによりそれを確認します。セキュリティの理由のため、あたなのアカウントにログインするために使用するものと同じパスワードを使用することは避けてください。
    この後、これと同じようなメッセージが表示されます:
    Your identification has been saved in /home/john/.ssh/identity.
    Your public key has been saved in /home/john/.ssh/identity.pub.
    The key fingerprint is:
    cb:f6:d5:cb:6e:5f:2b:28:ac:17:0c:e4:62:e4:6f:59 john@penguin.example.com
    The key's randomart image is:
    +--[RSA1 2048]----+
    |                 |
    |     . .         |
    |    o o          |
    |     + o E       |
    |    . o S        |
    |       = +   .   |
    |      . = . o . .|
    |       . = o o..o|
    |       .o o  o=o.|
    +-----------------+
  4. ~/.ssh/ ディレクトリのパーミッションを変更します:
    ~]$ chmod 755 ~/.ssh
  5. ~/.ssh/identity.pub の内容を接続したいサーバーの ~/.ssh/authorized_keys の中にコピーします。もしファイルがすでに存在すれば、その最後に追加します。
  6. 以下のコマンドを用いて ~/.ssh/authorized_keys ファイルのパーミッションを変更します:
    ~]$ chmod 644 ~/.ssh/authorized_keys
システムにパスフレーズを記憶させる方法については「ssh-agent の設定」を参照してください。

決して秘密鍵を共有しない

秘密鍵は個人利用のためのみにしてください。そして、それを誰にも渡さないことが重要です。

9.2.4.2. ssh-agent の設定

リモートマシンと接続を初期化するたびにパスフレーズを入力しなくてすむようにパスフレーズを保存するには、ssh-agent 認証エージェントを使用できます。特定のシェルプロンプトのためにパスフレーズを保存するには、以下のコマンドを使用します:
~]$ ssh-add
Enter passphrase for /home/john/.ssh/id_rsa:
ログアウトするとき、パスフレーズが忘れられることに注意してください。仮想コンソールやターミナルウィンドウにログインするたびにコマンドを実行しなければいけません。