Linuxとコマンドラインの基礎

手元のPCで ssh-keygen を使って公開鍵認証の鍵の組を作り、サーバ server1 にパスワードなしで ssh で接続できるようにしたい。鍵の置き方として、正しいものはどれか。

  1. A秘密鍵をサーバの ~/.ssh/authorized_keys に追加し、公開鍵は手元のPCだけに置いておく
  2. B公開鍵と秘密鍵の両方をサーバの ~/.ssh に置き、手元のPCには何も残さない
  3. 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. 正しい。サーバには公開鍵を登録し、秘密鍵は手元で守ります。
この分野を解く 分野ページへ

Linuxとコマンドラインの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

Linuxとコマンドラインの基礎のほかの問題

  1. 「tar -czf proj.tar.gz proj/」を実行したときの動作として、正しいものはどれか。
  2. Gitで管理しているファイル main.c を編集した後、「git commit -m "fix"」だけを実行したところ、「no changes added to commit」と表示されてコミットされなかった。理由として、正しいものはどれか。
  3. Gitで git commit を実行したが、チームで共有している GitHub のリポジトリには、そのコミットがまだ表示されていない。理由として、正しいものはどれか。
  4. Gitで管理しているプロジェクトの .gitignore に「build/」と書いたが、以前にコミットした build/out.log の変更が、git status に表示され続ける。理由として、正しいものはどれか。
  5. Linuxの標準的なディレクトリと、そこに置かれるものの組み合わせとして、正しいものはどれか。