Warning: count(): Parameter must be an array or an object that implements Countable in /usr/local/www/admnote/wp-includes/post-template.php on line 284

パスフレーズなしでssh接続する設定

FreeBSDのサーバに、MacやWindowsからパスワードなしでssh接続するための設定メモ。

サーバの設定

  1. /etc/ssh/sshd_configを編集し、次の行を追加する。デフォルト値が次の値なので、定義がなければないままでも良い。
  2. sshd_configを変更したら、sshdを再起動しておく。

鍵ペアの作成 (UNIX/Mac)

  1. ssh-keygenコマンドを使って、鍵ペアを作成する。
  2. FTPなどでクライアントからサーバのアカウントにid_rsa.pubをコピーする。
  3. authorized_keysにid_rsa.pubの内容を追加する。

鍵ペアの作成 (Windows)

  1. PUTTYgen.exeを起動する。
  2. パラメータの「生成する鍵の種類」に「SSH-2 RSA」を選択し、「生成する鍵のビット数」に2048を入力する。
  3. 「生成」ボタンをクリックし、「鍵」の欄でマウスを適当に動かす。
  4. 「鍵のコメント」にPCが識別できるようにコメントを入れておく。
  5. 「秘密鍵の保存」ボタンをクリックし、名前を付けてファイル作成する。(例: id_rsa.ppk)
  6. PuTTYを起動し、セッション定義の「接続 > SSH > 認証」の「認証パラメータ」にある「認証のためのプライベートキーファイル」に、先ほど保存したファイルをフルパスで指定する。
  7. PuTTYgenの「OpenSSHのauthorized_keysファイルにペーストするための公開鍵」の欄をコピーし、接続先の.ssh/authorized_keysファイルに追加する。

チェックポイント

鍵ペアをインストールしたにもかかわらずパスフレーズを聞かれてしまう場合には、次の点を確認する。

  • 各ファイルやディレクトリのパーミションが次のように適切に設定されていること。
    • $HOME/.ssh 700
    • $HOME/.ssh/authorized_keys 600
    • $HOME/.ssh/id_rsa 600
  • id_rsa.pubからauthorized_keysにパブリック鍵をコピーするときに改行コードが紛れ込んでいないこと。きちんとコピーすれば1行なのだが、コピー&ペーストでテキストコピーすると途中で勝手に改行コードが入ってしまうことがあり、正常な鍵とみなされなくなる。勝手な改行を防ぐため、ファイルをFTPなどで転送した上でcatを使ってマージするのが良い。
  • id_rsa.pubを.sshディレクトリ下に残しておかないこと。このファイルが残っており、かつid_rsaの鍵と一致しない場合には、接続先のauthorized_keysに記述があっても参照されない。
  • 不具合調査時には、sshに-vオプションをつけてデバッグ表示させると良い。-vを重ねて使うとデバッグレベルが上がり、最大3までのデバッグ情報が表示可。