実機へUbuntu Server 24.04 LTSをインストール

# はじめに
本記事は実機のPCへUbuntu Serverをインストールした時の手順を備忘録として記録したものです。

:::note warn
本記事を作成するにあたってスクリーンショットは仮想環境で再現したものを使用しているため一部(IPなど)を変更してますが、手順は全て実機PCへ導入した際の記録を元に書いています。
:::


:::note alert
OSが更新され本記事の情報が古くなっている可能性があります。
:::

# 環境
環境としてはWindows11のPCでISOファイルのダウンロードとUSBへの書き込み、インストール後にSSHで動作確認を行っています。
作業用PCはインターネットへ接続されていますが、サーバー用端末はインターネットやローカルネットへ接続されていない状態でインストールを行い、その後に閉じたローカルネットワークを構築し、IPアドレスを割り当てています。

- サーバー用端末
- 作業用PC(Windows11)
- USBメモリ
- ISOファイル(Ubuntu Server 24.04 LTS)
- SSHのクライアントソフト(TeraTerm)


# 全体の流れ
1. [インストールメディアの作成](#インストールメディアの作成)
1. [OSのインストール](#OSのインストール)
1. [IPの設定](#IPの設定)
1. [SSHの設定](#SSHの設定)
1. [動作確認](#動作確認)

# インストールメディアの作成
1. [Ubuntu 公式サイトのダウンロードページ](https://jp.ubuntu.com/download)へアクセス
1. Ubuntu Server 24.04 LTSのisoファイルをダウンロード
1. ([Rufus](https://rufus.ie/ja/)や[Universal USB Installer](https://pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/)などのインストールメディアを作成するツールにてインストールメディアを作成
1. USBをインストール先PCへ差し込み、BIOS(UEFI)へ入りBootの優先順位を差し込んだUSBが起動されるように変更し起動

# OSのインストール
1. ブートローダーの起動
`Try or Install Ubuntu Server`を選択
![Boot-Loader.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/14de2437-7ca0-d515-8c64-bad165c9c97c.png)

1. 言語
日本語は無いので`英語`を選択し`Enter`キーで押下
![Language.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/62c36e6f-72e9-1a25-d214-b1e3af322870.png)

1. キーボードのレイアウト
`Japanese`を選択し`[Done]`を押下
![Keyboard-Layout.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/8fca6c93-fcb1-7348-d688-fed6997ec5d3.png)

1. インストールの種類
デフォルトのインストールを行うため`Ubuntu Server`を選択し`[Done]`を押下
![Install-Type.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/fc28b381-36a0-d1de-6bf0-adea5a38a1d4.png)

1. ネットワーク設定
ネットワークを構築している場合はここでIPの設定を行う。今回は[後で行った](#IP&SSHの設定)ため何もせずに`[Done]`を押下
![Network-Config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/fc9a4873-529f-6500-0b13-4263e9b0ff5a.png)

1. プロキシサーバーの設定
今回はプロキシを使用しないため何もせずに`[Done]`を押下
![Proxy-Config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/85255c5c-0847-ee48-8e76-e75b2f0b137a.png)

1. ミラーサーバーの設定
ミラーサイトを選択する。今回はインターネットに繋がっていないため何もせずに`[Done]`を押下
![Mirror-Config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/cb925e14-4f50-7042-e1ff-a350617490b5.png)

1. ストレージの設定
ディスク全体を使用するために`Use an entire disk`をチェック
![Storage-Config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/3110a373-cad7-bca3-5ea2-75c7bca0a7cb.png)
パーティションの設定が問題なければ`[Done]`を押下
![Storage-Config2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/598d57aa-ebdb-6321-17ef-ef0708d9c340.png)
インストールを続行するとフォーマットされるという警告が出てくるので`[Done]`を押下
![Storage-Config3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/fafc74ea-2af3-b617-568b-cc29120ad160.png)


1. ユーザーの設定
サーバー名、ユーザー名、パスワード等を設定したら`[Done]`を押下
![Profile-Config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/dd3b0c15-3773-6e63-31d3-02475dea188d.png)

1. Ubuntuのアップグレード
Ubuntu Proへアップグレードを行わないため`Skip Ubuntu Pro setup for now`をチェックし`[Done]`を押下
![Upgrade.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/9745da68-842c-9653-21b9-54220e7fb170.png)

1. SSHの設定
SSHを使用するために`Install OpenSSH server`へチェックを入れ`[Done]`を押下
あとからインストールする場合は、インターネットが必要(一応無理やりローカルで入れられるようだが面倒らしい)となるため、必要かどうかよく確認しましょう(一敗)
![SSH-Config.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/79add94d-8f75-2919-4b6e-685dfe6606fb.png)

1. 追加パッケージのインストール
インターネットが接続している場合はさらに追加のパッケージを選択できるらしいので必要なものを選択。今回はインターネットへ接続していないためこの項目は出てきません

1. インストール
設定が終わるとインストールが開始されます。終了後はインストールメディアを抜き取り再起動
![Installing.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/39052543-59bf-84f3-c644-53bd5b531d01.png)
![Installed.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/7b8f7c1f-fa55-b02d-5584-af67c9369b0b.png)

# IPの設定
1. ネットワークのインターフェースを確認
    IPを設定する際に、インターフェースの名が必要なためコマンドで調べます
    ```bash
    ip a
    ```
    この画像の赤線の部分がインターフェースの名前なので覚えておきます
    ![IPaddres.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/6000c658-a763-32c6-ecdc-0d43de2b4a2e.png)

1. ファイルの作成と編集
    IPの設定は`/etc/netplan`にファイルを追加し、設定します  
    ```bash
    sudo touch /etc/netplan/99_config.yaml
    sudo vi /etc/netplan/99_config.yaml
    ```

    ```yaml:/etc/netplan/99_config.yaml
    network:
        version: 2
        ethernets:
        enp0s3:
          dhcp4: false
          dhcp6: false
          addresses: [192.168.10.2/24]
          routes:
            - to: default
              via: 192.168.10.1
              nameservers:
            addresses: [192.168.10.1]
    ```

1. 権限の変更
    編集した設定を適用する際に以下の様な、ファイルの権限エラーが出る場合があります
    ![NetApply-Error .png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/d78e9a63-47eb-61a9-b8d5-08932e17e0eb.png)
    対応策として、次のコマンドを用いてアクセス権の付与を行います
    ```bash
    sudo chmod 600 /etc/netplan/99_config.yaml
    ```
1. 設定の反映
    次のコマンドで設定を反映します。`ip a`で確認すると設定が出来ていると思います
    ```bash
    sudo netplan apply
    ```

# SSHの設定
1. SSHの有効化
    OSインストール時に選択していればサービスが起動していると思いますが、次のコマンドで起動しているか確認しましょう
    ```bash
    sudo systemctl status ssh
    ```
    `active (running)`となっていれば問題ありません。
    インストールがされていなければ次のコマンドでインストールします。
    ```
    sudo apt install openssh-server
    ```

    

1. ファイルの変更
    ファイルを編集する前に元のコピーを取っておきます
    ```bash
    cd /etc/ssh/
    sudo cp sshd_config sshd_config.orig
    ```

    とりあえず今回はパスワード認証でSSHを行えるようにします(実際に運用で使うならパスワードの認証回数を制限するなど何らかの対策をしましょう)。
    
    57行目付近にある次のコードを`PasswordAuthentication yes`にし保存する
    ```diff_yaml
    - #PasswordAuthentication yes
    + PasswordAuthentication yes
    ```
    
1. 設定の反映
    ```bash
    sudo sshd -t -f sshd_config
    sudo systemctl restart ssh
    ```

# 動作確認
インストールができたことを確認するために、WindowsのPCから今回インストールしたサーバーへSSHでログインします

- TeraTerm
    1. ホスト名に設定したIPを入力
    ![TeraTerm.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/092449a5-4c52-3e68-46fa-3d8ef36d790e.png)
    1. ユーザー名とパスワードを入力
    ![TeraTerm2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/e506496b-b497-81e1-50ed-ffdbee3e20d0.png)
    1. ログインに成功すると以下のような画面となる
    ![TeraTerm3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/f27d7802-36da-6644-06b1-483dfd8b91b4.png)

- SSHコマンド
    今回初めてOSに標準でSSHクライアントが使えるのを知りました。
    実行ファイルは`C:\Windows\System32\OpenSSH\ssh.exe`にあるようでターミナルからsshのコマンドを使うことができるようです。
    ```
    ssh -p [port] -l [user name] [IP address]
    ```
    上記のようにSSHのコマンドでアクセスし、成功すると以下の画面のようになります。
    ![Windows-SSH.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3519793/cec25e7a-783d-502c-12a1-52e27b1e07cc.png)