ssh で公開鍵認証方式を利用するには
ssh ではパスワード認証方式ではなく、公開鍵認証方式を利用することでパスワード入力を省略することが出来ます。
クライアント側の設定(ssh する側の設定)¶
"ssh-keygen" で秘密鍵と公開鍵を生成します。"-t rsa" オプションを指定することで RSA 暗号化方式になります。デフォルトでは ~/.ssh ディレクトリに秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が出来ます。このうち、公開鍵のみ、サーバ側へコピーします。通常であればネットワーク経由ではなく、メディア等でコピーしますが、今回は便宜的に scp コピーしています。
1 2 3 |
|
サーバ側の設定(ssh される側の設定)¶
CentOS 5.5 のデフォルト設定では /etc/ssh/sshd_config 中、以下の箇所がコメントアウトされていました。
1 2 3 |
|
コメントアウトを外し、「RSA 暗号化方式による認証」「公開鍵認証」を有効化します。
1 2 3 |
|
修正が終わったら sshd を再起動し、変更した設定を反映しておきます。
1 2 3 |
|
次にクライアント側から scp コピーした公開鍵を ~/.ssh/authorized_keys に追記しておきます。また、デフォルトの設定では ~/.ssh ディレクトリと ~/.ssh/authorized_keys を適切な権限にしておく必要があります。
1 2 3 4 |
|
通信確認¶
以上の設定で、公開鍵認証方式によりサーバへログイン出来ることを確認します。
1 2 3 |
|
「Permission denied (publickey,gssapi-with-mic).」エラーが出る場合は¶
サーバへ ssh すると以下のようなエラーが出る場合があります。
1 2 |
|
こういった場合はサーバ側の ~/.ssh ディレクトリと ~/.ssh/authorized_keys ファイルのアクセス権限に問題がある可能性があります。例えば以下のような権限変更を行ないます。
1 2 |
|