Claude × Debian サーバー編 03

第3章 最小インストール

デスクトップの無いDebianを入れる

なぜ「最小」か

デスクトップ編では、GNOMEや日本語入力やアプリ群を入れて、毎日触る作業環境を作った。サーバーは逆だ。載せるものは、少なければ少ないほど良い。

理由は三つある。

一、攻撃面が減る。 インストールされたソフトは、どれも潜在的な入口になる。画面に映らないサーバーにブラウザもオフィスも画像編集ソフトも要らない。入れなければ、そこから入られることもない。

二、更新の量が減る。 パッケージが少なければ、apt upgrade が触るものも少ない。更新で何かが壊れる確率も、更新にかかる時間も下がる。放っておいても安定する。

三、把握コストが減る。 「このサーバーには何が入っているか」を頭の中に保てる量に抑えると、トラブルのとき原因の見当がつく。デスクトップのように「いつ何を入れたか忘れた」状態は、サーバーでは避けたい。

この章は、デスクトップ編の第7章「インストール実行の対話」を一から繰り返さない。UEFIブート、ディスク選択、暗号化パスフレーズ、ユーザー作成、GRUBといった共通部分は本編第7章がそのまま使える。 ここで扱うのは、サーバー特有の「差分」——ソフトウェア選択をどう削るか、デスクトップが無い環境にどうログインするか、IPアドレスをどう固定するか——だけだ。本編第7章を脇に開いて読んでほしい。

第一節 インストーラでの分岐点

netinst イメージを使う

サーバーでも、使うイメージはデスクトップ編と同じ netinst(ネットワークインストール)ISO でいい。容量は数百MBと小さく、必要なパッケージはインストール中にネットから取る。Debian 13(trixie)の netinst は non-free firmware を同梱しているので、一般的なネットワークチップなら追加作業なしで繋がる。

VPSを借りた場合は、この手順自体が要らないことが多い。事業者の管理画面で「Debian 13」を選べば、最小構成のDebianが数分で立ち上がる。その場合は第一節を読み飛ばして、第二節の初回ログインから始めればいい。自宅のミニPCや古いノートに入れる人だけが、この節を実際に手で進める。

tasksel——この章の核心

インストーラを本編第7章の手順どおり進めると、終盤に「ソフトウェアの選択」(tasksel)の画面が出る。デスクトップ編ではここで「Debian デスクトップ環境」と「GNOME」にチェックを入れた。

サーバーでは、ここが全てだ。 デスクトップ関連を全て外し、次の二つだけにチェックする。

[ ] Debian desktop environment   ← 外す
                [ ]   ... GNOME                   ← 外す
                [ ]   ... KDE Plasma              ← 外す
                [ ]   ... その他のDE              ← 全て外す
                [ ] web server                    ← 外す(後で必要な分だけ入れる)
                [*] SSH server                    ← チェックする
                [*] standard system utilities     ← チェックする
                

スペースキーでチェックの入切、Tabで「続ける」へ移動、Enterで確定する。「SSH server」と「standard system utilities」の二つだけ が点いている状態にする。これでデスクトップの無い、最小のDebianができる。

「SSH server」を入れ忘れても後から apt install openssh-server で足せるが、ここで入れておくと再起動後すぐ次章のSSH設定に入れる。忘れないこと。

root パスワードと sudo

ユーザー作成の方針は本編第7章と同じでいい。root のパスワードは空欄にして、一般ユーザーに sudo を与える方式を本書は推奨する。 理由はデスクトップ編と同じで、管理操作の入口を一つに絞れること、そして「root で直接ログインできない」状態は、次章でSSHを締めるときに効いてくる。

ユーザー名は英字小文字で短く(taroadmin-t など)。このユーザー名が、次章以降のSSH接続で毎回打つ名前になる。

ロケールは英語を勧める

デスクトップ編では言語に「日本語」を選んだ。サーバーは逆に、ロケールを英語(C.UTF-8 または en_US.UTF-8)にしておくことを勧める。 サーバーが吐くログやエラーメッセージは、英語のままにしておいた方が、Claudeに貼ったときも、検索したときも、世界中の同じエラーの記録と突き合わせたときも有利だからだ。日本語に訳されたエラー文は、かえって情報源が痩せる。画面に向き合う人間がいないサーバーでは、表示の親しみやすさより、トラブル時の調べやすさを優先する。

Claudeに聞いてみよう①:迷った選択肢を文言ごと貼る

Debianインストーラの「ソフトウェアの選択」画面に、次の項目が並んでいます: 〔画面に出ている項目を一行ずつそのまま書き写す〕

私はデスクトップを持たないサーバーを作りたい。どれにチェックを入れ、どれを外すべきですか。それぞれが何をインストールするものか、一行で添えてください。

画面の文言をそのまま貼るのがコツだ。Debianのバージョンや構成で項目は少しずつ変わる。一般論ではなく、目の前の画面に対する答えが返る。

第二節 初回ログインと最初の10分

黒い画面とプロンプト

再起動後、サーバーに映るのは黒い画面とログインプロンプトだけだ。デスクトップは無い。ユーザー名とパスワードを打つと、$ のプロンプトが出る。これがサーバーの「素顔」だ。 ここから先、全ての作業はこのコマンドラインで行う。

最初にやることは決まっている。順に進める。

自分のIPアドレスを確認する

次章以降、別のPCからこのサーバーに繋ぐために、サーバーのIPアドレスが要る。

ip a
                

inet 192.168.x.x のような行を探す。127.0.0.1(自分自身を指すループバック)ではない方、たいていは 192.168.10. で始まる行が、家のネットワークの中でのこのサーバーの住所だ。メモしておく。

システムを最新にする

sudo apt update
                sudo apt upgrade
                

最小構成なので、更新対象は少ない。すぐ終わる。

sudo が無かったら

インストール時にユーザーをsudoグループに入れ損ねていると、sudo を打っても弾かれる。その場合は一度 root で入って(root パスワードを設定していれば su -、していなければ物理コンソールから)次を実行する。

apt install sudo
                usermod -aG sudo あなたのユーザー名
                

その後、一度ログインし直すとsudoが効くようになる。グループの変更は再ログインで反映される。

ホスト名を確認する

hostnamectl
                

このサーバーの名前が出る。気に入らなければ sudo hostnamectl set-hostname サーバー名 で変えられる。会社名や本名は避け、home-servernas01 のように役割が分かる名前にしておくと、後で複数台になったとき迷わない。

Claudeに聞いてみよう②:ip a の出力を読ませる

サーバーで ip a を実行したら次のように出ました: 〔出力をそのまま貼る。MACアドレスは伏せてよい〕

このサーバーのIPアドレスはどれですか。インターフェース名(eth0 / enp3s0 など)は何で、有線・無線のどちらですか。家のLANの中でこのサーバーがどう繋がっているか、初心者向けに説明してください。

ip a の出力は最初は記号の羅列に見える。Claudeに貼れば、どの行が何を意味するか、自分の構成に即して解説が返る。本編第3章「自分の環境を Claude に伝える方法」で身につけた「出力を貼って読ませる」作法が、ここでも効く。

第三節 IPアドレスを固定する

なぜ固定が要るか

家庭のネットワークでは、IPアドレスはルーターが自動で配る(DHCP)。便利だが、サーバーには困る。割り当てが再起動や時間経過で変わると、SSHの宛先が毎回変わってしまう。 「昨日は .50 だったのに今日は .53」では、次章で作る玄関の住所が定まらない。

だからサーバーのIPは固定する。方法は二つある。

方法その一:ルーター側で予約する(推奨)

多くの家庭では、これが一番楽で安全だ。 ルーターの設定画面に「DHCP予約」「固定IP割り当て」「静的DHCP」といった項目がある。そこで「このMACアドレスの機器には、いつもこのIPを配る」と登録する。サーバー側の設定は一切いじらない。ルーターが約束を守ってくれる。

ただし設定画面の場所も名前も、ルーターの機種ごとにまるで違う。ここはClaudeに型番を伝えて聞くのが一番速い。

方法その二:サーバー側で固定する

ルーターをいじれない事情があるなら、サーバー側で固定する。最小構成のDebianは /etc/network/interfaces で管理されている。次が最小の例だ(インターフェース名 enp3s0 は自分の ip a の出力に置き換える)。

sudo nano /etc/network/interfaces
                
auto enp3s0
                iface enp3s0 inet static
                    address 192.168.1.50/24
                    gateway 192.168.1.1
                

address は家のネットワークで空いているアドレス、gateway はルーターのアドレス(たいてい 192.168.1.1192.168.0.1)にする。保存して、反映する。

sudo systemctl restart networking
                

サーバー側固定には落とし穴がある。 ルーターのDHCPが配る範囲(例:.100〜.200)の中の番号を選ぶと、別の機器とぶつかる恐れがある。範囲の外(例:.50)を選ぶ。この見極めも、自信が無ければClaudeに自分の構成を貼って確認する。

Claudeに聞いてみよう③:自宅ルーターの型番でDHCP予約の手順を聞く

自宅のルーターは〔メーカー・型番、例:Buffalo WSR-3200AX4S〕です。 Debianサーバーに固定IPを割り当てたい。サーバーのMACアドレスは〔ip a で確認した値〕、希望するIPは〔192.168.1.50 など〕です。 このルーターの管理画面で「DHCP予約」を設定する手順を、画面の項目名に沿って一つずつ教えてください。

ルーターの設定は機種依存の典型だ。本に一般論を書いても役に立たない。目の前の機種に固有の手順 は、型番を伝えてClaudeに聞くのが正解だ。返ってきた手順を見ながらルーターの画面を開く。

まとめ

この章でやったこと:

  1. netinst イメージで、tasksel から「SSH server」と「standard system utilities」だけを選んだ
  2. root を空欄にし、一般ユーザーに sudo を与える方式でインストールした
  3. ロケールを英語にして、トラブル時の調べやすさを優先した
  4. 初回ログインで ip a でIPを確認し、apt update && upgrade で最新化した
  5. ルーターのDHCP予約、またはサーバー側設定でIPアドレスを固定した

手元に残ったもの:

  • デスクトップの無い、最小構成のDebianサーバー
  • 家のネットワークの中で固定されたIPアドレス(次章のSSHの宛先になる)
  • このサーバーの素性をまとめたメモ(IP、インターフェース名、ホスト名)

ここまでは、まだサーバーに直接モニタとキーボードを繋いで操作していた。次の第4章「SSHという玄関」で、別のPCから安全に出入りする仕組みを作る。それが済めば、サーバーからモニタを外し、本来の「画面の無いサーバー」として動かし始められる。


シリーズ全体はClaudeと一緒に学ぶDebian サーバー編 一覧から辿れる。本編(デスクトップ編)は全章一覧へ。コメント・議論は Facebook グループへ:AISeed — 生物多様性・食料・AIと暮らし

← 前: 第2章 サーバーをどこに置くか 次: 第4章 SSHという玄関 →

引くほど、強くなる。

サーバーは載せるものが少ないほど安全で、把握しやすく、壊れにくい。この章は「何を入れるか」ではなく「何を入れないか」を選ぶ章だ。迷う画面はClaudeに文言ごと貼って確かめる。

AISeed — 生物多様性・食料・AIと暮らし(Facebook)