Linuxとコマンドラインの基礎
手元のPCで ssh-keygen を使って公開鍵認証の鍵の組を作り、サーバ server1 にパスワードなしで ssh で接続できるようにしたい。鍵の置き方として、正しいものはどれか。
- A秘密鍵をサーバの ~/.ssh/authorized_keys に追加し、公開鍵は手元のPCだけに置いておく
- B公開鍵と秘密鍵の両方をサーバの ~/.ssh に置き、手元のPCには何も残さない
- C公開鍵をサーバの ~/.ssh/authorized_keys に追加し、秘密鍵は手元のPCから外に出さない
答えと解説を見る
正解:C. 公開鍵をサーバの ~/.ssh/authorized_keys に追加し、秘密鍵は手元のPCから外に出さない
SSH の公開鍵認証では、サーバは authorized_keys に登録された公開鍵を使って、接続してきた側がそれに対応する秘密鍵を持っていることを確かめます。秘密鍵そのものは送られないので、秘密鍵は手元のPCにだけ置き、他人に読まれないよう権限を 600 などにして、パスフレーズで保護しておきます。公開鍵(~/.ssh/id_ed25519.pub のような .pub のファイル)は知られても問題がなく、ssh-copy-id を使うとサーバの authorized_keys に追加できます。同じ鍵は、ssh の上で動く scp や rsync でファイルを転送するときにも使われます。
- A. 秘密鍵は名前のとおり外に出してはいけません。サーバに登録するのは公開鍵です。
- B. 秘密鍵をサーバに置くと、サーバに入れる人が誰でもその鍵を使えてしまいます。また、手元に秘密鍵がないと認証できません。
- C. 正しい。サーバには公開鍵を登録し、秘密鍵は手元で守ります。