コース一覧
LinuC レベル1(LPIC-1対応)対策
SSHとGPG

LinuC レベル1(LPIC-1対応)対策

ブートとsystemd、パッケージ管理(APT/RPM両系統)、コマンドとviの操作、ファイルシステム、シェルスクリプト、ユーザー管理とセキュリティ、ネットワークまで、LinuC レベル1(LPIC-1対応)の全出題範囲を、毎レッスン実際にコマンドを打って確かめながら学べる対策コースです。ブラウザの中で本物の Debian 12 が動いていて、62レッスンのうち36本は読むだけで終わらず、自分の手でコマンドを打った結果で採点されます。Linux入門を修了した方を対象としています。101・102それぞれの模試60問で分野別の弱点を洗い出し、直前チェックで暗記事項を固めてから本番に臨めます。

1
試験ガイダンス
01. LinuC/LPICとは15分
02. LinuCとLPICの選び方15分
03. 学習計画15分
04. 出題形式を体験15分
2
101 ブートとアーキテクチャ
01. ブートの流れ18分
02. GRUB15分
03. systemdとターゲット18分
04. ハードウェア情報18分
05. カーネルモジュール18分
06. 過去問 アーキテクチャ15分
3
101 パッケージ管理
01. Debian系パッケージ18分
02. RPM系パッケージ15分
03. 両系統の対応表15分
04. リポジトリ管理18分
05. 共有ライブラリ18分
06. 過去問 パッケージ管理15分
4
101 GNU/Unixコマンド
01. ファイル操作の試験オプション18分
02. テキスト処理18分
03. ストリームとリダイレクト18分
04. プロセス監視18分
05. 優先度18分
06. grepと正規表現18分
07. viの操作15分
08. 過去問 コマンド15分
5
101 ファイルシステム
01. パーティション15分
02. 作成とマウント18分
03. fstabとUUID18分
04. パーミッションとリンク18分
05. 容量とクォータ18分
06. findとlocate18分
07. 過去問 ファイルシステム15分
6
102 シェルとスクリプト
01. シェル環境18分
02. testと条件式18分
03. スクリプトの制御18分
04. cronとat15分
05. systemdタイマー18分
06. 過去問 シェル15分
7
102 ユーザーとセキュリティ
01. passwdとshadow18分
02. ユーザー管理コマンド18分
03. suとsudo18分
04. 特殊パーミッション18分
05. ホストのセキュリティ18分
06. SSHとGPG18分
07. 過去問 ユーザーとセキュリティ15分
8
102 ネットワーク
01. TCP/IPとウェルノウンポート18分
02. アドレス設定18分
03. ルーティング18分
04. 名前解決の設定18分
05. 疎通トラブルシュート18分
06. 過去問 ネットワーク15分
9
102 システム管理
01. 時刻とNTP15分
02. ロケールと文字コード18分
03. ログ管理18分
04. サービス管理の試験形式18分
05. メールと印刷のきほん15分
06. 過去問 システム管理15分
10
模試と直前対策
01. 模試 10190分
02. 101弱点復習15分
03. 模試 10290分
04. 102弱点復習15分
05. 直前チェック15分
06. 受験と次のステップ15分

SSHとGPG

設定は正しいのに公開鍵でログインできない。原因の多くは ~/.ssh のパーミッションです。sshd は権限の緩い鍵を何も言わずに無視します。試験でも定番の出題です。

鍵は2つできる。サーバーへ置くのは公開鍵のほう

ssh-keygen を実行すると2つのファイルができます。id_ed25519 が秘密鍵、id_ed25519.pub が公開鍵です。秘密鍵は絶対に外へ出さず手元に置いたままにし、サーバーへ置くのは公開鍵のほうです。

オプション意味
-t <type>鍵の種類。rsa ed25519 ecdsa
-b <bits>鍵長。RSA なら 2048 以上、推奨は 4096
-f <path>出力先のパス。-N はパスフレーズ
-p既存の鍵のパスフレーズを変更する。-C はコメント
-l -f <pub>鍵のフィンガープリントを表示する

~/.ssh は 700、authorized_keys は 600

ファイル場所役割権限
~/.ssh両方鍵と設定の置き場700
~/.ssh/id_ed25519クライアント秘密鍵600
~/.ssh/id_ed25519.pubクライアント公開鍵644
~/.ssh/authorized_keysサーバー接続を許す公開鍵の一覧600
~/.ssh/known_hostsクライアント接続先のホスト鍵の記録644

グループや他人に書き込み権があると、sshd は安全でないと判断して鍵を無視します。公開鍵の登録は authorized_keys へ1行として追記する形ですが、リモートへ送るなら ssh-copy-id user@host がパーミッションまで面倒を見てくれます。

known_hosts は接続先サーバーのホスト鍵を記録するファイルです。記録と異なるホスト鍵が提示されると警告を出して接続を止めます。中間者攻撃への対策で、サーバーを再構築して鍵が変わったときは ssh-keygen -R <host> で該当行を消します。

秘密鍵にパスフレーズを付けると安全ですが、接続のたびに入力を求められます。ssh-agent は復号した鍵をメモリに預かるデーモンで、ssh-add で預ければ以降は省略できます。ssh-add -l が一覧、-D が全削除です。

sshd_config はサーバー側、ssh_config はクライアント側

項目意味
Port待ち受けポート
PermitRootLoginroot の直接ログインの可否。no / yes / prohibit-password
PasswordAuthenticationパスワード認証を許すかどうか
PubkeyAuthentication公開鍵認証を許すかどうか
AuthorizedKeysFile公開鍵一覧のパス。PermitEmptyPasswords は空パスワードの可否

公開鍵認証を必須にする定番の締め方は、PermitRootLogin prohibit-password と PasswordAuthentication no の組み合わせです。変更後は systemctl reload ssh などで反映します。サーバー自身の身元を示すホスト鍵は /etc/ssh/ssh_host_* に置かれ、known_hosts に記録されるのはこの公開鍵です。

GPG は暗号化と署名で使う鍵が逆

GPG は公開鍵暗号でファイルやメールの暗号化と署名を行います。鍵ペアの考え方は SSH と同じで、公開鍵は配ってよく、秘密鍵は自分だけが持ちます。用途は2つあり、使う鍵が逆になります。暗号化するときは受信者の公開鍵で暗号化し、受信者が自分の秘密鍵で復号します。署名するときは自分の秘密鍵で署名し、検証する側が署名者の公開鍵で確かめます。ここを取り違えるのが典型的な間違いです。

コマンドは --gen-key で鍵ペア作成、--list-keys と --list-secret-keys で一覧、--export -a と --import で書き出しと取り込み、--sign と --verify で署名と検証、--encrypt -r <ID> と --decrypt で暗号化と復号です。鍵束は ~/.gnupg 配下です。なお、この学習環境には gpg が入っていないため実機演習はありません。

試験で狙われるところ

サーバーに置くのは公開鍵です。~/.ssh は 700、authorized_keys は 600 で、緩いと鍵が無視されます。サーバー側の設定は sshd_config で、クライアント側の ssh_config とは別物です。そして暗号化は相手の公開鍵、署名は自分の秘密鍵です。

ヒント

まず mkdir /root/.ssh でディレクトリを作ります。setup では作っていないので自分で用意してください

ssh-keygen は -t で種類、-f で出力先、-N でパスフレーズを指定します。-N "" と書けば対話なしで完了します

登録は cat /root/.ssh/id_ed25519.pub >> /root/.ssh/authorized_keys です。最後に chmod 700 /root/.ssh と chmod 600 /root/.ssh/authorized_keys を忘れないでください

  • 1. ls -la /root で .ssh が存在しないことを確かめる
  • 2. mkdir で /root/.ssh を作る
  • 3. ssh-keygen -t ed25519 -f /root/.ssh/id_ed25519 -N "" で鍵ペアを作る
  • 4. ls -l /root/.ssh で秘密鍵と公開鍵の2つができたことを確認する
  • 5. 公開鍵を /root/.ssh/authorized_keys に追記する
  • 6. chmod で /root/.ssh を 700、authorized_keys を 600 にする
  • 7. ssh-keygen -l -f /root/.ssh/id_ed25519.pub でフィンガープリントを表示する

6 項目で採点します