ミニPCにRocky Linux 9.4をインストールする
はじめに
この記事では、CentOSの後継として開発されたRHEL(Red Hat Enterprise Linux)互換のオープンソースOS「Rocky Linux」をミニPCにインストールして、開発用のローカルサーバーとして使うまでの手順を忘備録として残しておきます。
ミニPC とは
ミニPCは、デフォルトでWindows 11 がインストールされている、2万円から購入できるパソコンです。mac miniのようにお弁当箱型の小型サイズで、ちょっとしたスペースに配置できるので置き場所に困りません。

私が購入したミニPCは、 TRIGKEYというメーカーのもの です。
2万円台の価格にも関わらずメモリ16GB・ストレージ500GB・CPU3.4GHzと、開発用サーバー用途としてはスペック的に申し分ありません。
Rocky Linux の ISO ファイルをダウンロード
こちらのページから Rocky Linux の ISOファイルをダウンロードします。 - https://rockylinux.org/ja-JP/download
開発用のローカルサーバーとして使うため、CUIで良いのですが、CUIだとWiFiドライバーなどがうまくできなかったため、GUIのDVD ISO(v9.4)をダウンロードしました。ミニPCのアーキテクチャは Intel(x86_64) なので、それを選択します。
インストールはUSBメモリ経由で行います。ISOファイルが10GB以上ありますので、USBメモリの容量に注意します。また、USBメモリへの書き込みは、macOSで操作します。
USBメモリのフォーマット
まず、macOSでUSBメモリをフォーマットしておきます。
- USBメモリをMacに接続します。
- 「ディスクユーティリティ」を開きます。
- 左側のリストからUSBメモリを選択し、「消去」をクリックします。
- 名前は任意に設定し、フォーマットは「MS-DOS(FAT)」、方式は「マスターブートレコード(MBR)」にします。
- 「消去」をクリックしてフォーマットを完了します。
USBデバイスの確認
ターミナルを開き、USBメモリのデバイス名を確認します。
diskutil list
通常、/dev/diskXの形式で表示されます。ここで、XはUSBメモリの番号です。間違えるとデータが消える可能性があるので、必ずUSBメモリのデバイス名を確認してください。
ISOファイルを書き込む
次に、ddコマンドを使ってISOファイルをUSBメモリに書き込みます。
まず、次のコマンドでUSBメモリをアンマウントします(/dev/diskXの部分は実際のデバイス名に置き換えてください)。
diskutil unmountDisk /dev/diskX
ISOファイルを書き込みます。path/to/RockyLinux-9.4-DVD.iso
は実際のISOファイルのパスに置き換えてください。
sudo dd if=/path/to/RockyLinux-9.4-DVD.iso of=/dev/diskX bs=4m
- if=は入力ファイルのパスです(ISOファイルの場所)。
- of=は出力ファイル(USBメモリのデバイス名)です。
- bs=4mはブロックサイズを4MBに設定して、速度を最適化しています。
ここでも、USBメモリのデバイス名(/dev/diskX)を絶対に間違えないように注意して下さい。 ※ ddコマンドの実行には時間がかかることがあります。
書き込みが完了したら、以下のコマンドで安全に取り出します。
diskutil eject /dev/diskX
Mini PCにUSBメモリを接続してインストール
USBメモリをMini PCに接続し、BIOSまたはUEFI設定でUSBからのブートを有効にします。
- Mini PCの電源を入れ、ブートメニューにアクセスします(通常、F12、F2、Escなどのキーを押します)。
- USBメモリから起動を選択します。
- Rocky Linuxのインストーラが起動したら、インストール手順に従ってインストールします。
ホスト名を設定し、ホスト名でSSHアクセス
Rocky Linuxでホスト名を設定し、ホスト名でSSHアクセスできるようにする手順は以下の通りです。
ホスト名の設定
新しいホスト名を設定します。以下のコマンドでホスト名を変更してください(例として myserver を使用しています)。
sudo hostnamectl set-hostname myserver
ホスト名の確認
設定が正しく行われたか確認するために、以下のコマンドでホスト名を確認します。
hostnamectl
/etc/hostsファイルの更新
localhost からホスト名でアクセスできるようにするため、 /etc/hosts ファイルにホスト名とローカルIPアドレスを追加します。以下のように設定します。
sudo vi /etc/hosts
以下の行を追加または編集します。
127.0.0.1 myserver
他のデバイスからホスト名でアクセスする
他のデバイス(例: macOS)からホスト名 myserver でアクセスするには、DNS設定または /etc/hosts にホスト名とIPアドレスの関連付けが必要です。
sudo vi /etc/hosts
/etc/hosts に以下のように追加します。
[mini PCのIPアドレス] myserver
SSHでホスト名で接続
設定が完了したら、macOSから以下のコマンドでホスト名で接続をテストします。
ssh ユーザー名@myserver
以上で、ホスト名を使ってSSHでアクセスできるようになります。
avahi-daemon で マルチキャストDNS をサポートする
avahi-daemon
は
mDNS(マルチキャストDNS)をサポートし、LAN内のサーバーへドメインでアクセスできるように名前解決してくれます。ラズパイでは
hostname
にサーバー名を設定しておくと、デフォルトでホスト名でアクセスできたりします。実はラズパイ(Raspberry
Pi OS)はデフォルトで avahi-daemon
が設定されて動いていたみたいです。ubuntu-server
などの普通のLinuxでは、自分で avahi-daemon
をインストールする必要がありますので、その手順を記しておきます。
ホスト名の確認と設定
ホスト名を確認するには、以下のコマンドを使用します。
hostnamectl
もし your-hostname
がホスト名でない場合、ホスト名を
your-hostname
に設定します。
sudo hostnamectl set-hostname your-hostname
その後、/etc/hostname
ファイルに正しく設定されているかも確認してください。
mDNS対応のインストール
avahi-daemon
をインストールしてmDNS対応を有効にします。
sudo apt update
sudo apt install avahi-daemon
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
Macからのアクセス
以上で your-hostname.local
にアクセスできるはずです。sshなどでアクセスしてみましょう
ssh username@your-hostname.local
macOSからRocky LinuxへパスワードなしでSSH接続する方法
SSHでパスワードなしでログインする方法を紹介します。
macOSからRocky
Linuxにパスワードなしでログインするには、SSH公開鍵認証を設定します。この場合、秘密鍵の名前はid_rsa_rocky
とします。
鍵の生成(必要に応じて)
macOSで、id_rsa_rocky
という名前の鍵がまだない場合は生成します。
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_rocky
-t rsa
:RSA鍵を指定-b 4096
:鍵の長さを指定(4096ビット)-f ~/.ssh/id_rsa_rocky
:鍵のファイル名を指定
パスフレーズを求められた場合は、空のままEnterを押すと、パスワードなしでログインできます。
公開鍵をRocky Linuxに転送
次に、公開鍵をRocky Linuxにコピーします。
ssh-copy-id -i ~/.ssh/id_rsa_rocky.pub user@rocky-linux-host
~/.ssh/id_rsa_rocky.pub
:生成した公開鍵user@rocky-linux-host
:Rocky Linuxのユーザー名とホスト名またはIPアドレス
Rocky Linux側での設定確認
公開鍵が正しく配置されていることを確認します。
ログイン後、~/.ssh/authorized_keys
に公開鍵が追加されているか確認します。
cat ~/.ssh/authorized_keys
SSHディレクトリとファイルのパーミッションを確認します。
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Rocky LinuxのSSH設定ファイル/etc/ssh/sshd_configに以下の設定が含まれているか確認します。
sudo vi /etc/ssh/sshd_config
以下の行を探して確認または修正します:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes
PermitRootLogin prohibit-password
ChallengeResponseAuthentication no
変更した場合はSSHサービスを再起動します:
sudo systemctl restart sshd
macOSでSSH設定を更新
~/.ssh/config
に設定を追加して、指定した鍵を使うようにします。
vi ~/.ssh/config
以下の内容を追加します:
Host rocky-linux-host
HostName rocky-linux-host
User user
IdentityFile ~/.ssh/id_rsa_rocky
Host
:任意のホスト名(短縮名として使えます)HostName
:Rocky Linuxのホスト名またはIPアドレスUser
:ログインに使用するユーザー名IdentityFile
:鍵ファイルのパス
保存後、ファイルのパーミッションを確認します。
chmod 600 ~/.ssh/config
接続テスト
以下のコマンドで接続をテストします。
ssh rocky-linux-host
問題がなければパスワードなしでログインできます。
SSH設定を変更してディレクトリ権限の制限を緩和する
通常、サーバー側の /home/rocky
はディレクトリ権限を700
にする必要があります。そうしないと、パスワードを要求されてしまいます。何かの理由でホームディレクトリを700
にできない場合、SSHが公開鍵認証を許可するように設定を調整することが可能です。以下の手順で対応してください。
解決方法
SSHの設定で、ディレクトリ権限の厳密なチェックを無効化できます。ただし、これはセキュリティリスクを伴うため注意が必要です。
SSH設定ファイルを編集します。
sudo vi /etc/ssh/sshd_config
次の設定を追加または変更します:
StrictModes no
- この設定を有効にすると、
authorized_keys
ファイルの権限が厳密にはチェックされなくなります。
SSHサービスを再起動します。
sudo systemctl restart sshd