初学者向け：VirtualBox上に構築したUbuntu Server 24.04.1 LTSへのSSH接続方法

## はじめに

自宅のホームラボ環境に新たにUbuntuを導入しました。導入のきっかけは、***これまでRed Hat（rpm系）を中心にLinuxを扱っていましたが、改めてDebian系のLinuxについても学びたいと思ったからです。***

:::note info
***ただ、ホストOSであるWindows 11のスペックが限界に近かったため、軽量版を選んで導入することにしました。***
:::

当初は、ターミナルやTera TermなどのSSHソフトを使用して作業を進める予定でしたが、そもそもSSH接続ができないというエラーに直面しました。

***本記事では、その原因特定から解決方法までをまとめてご紹介します。***

## 前提知識
今回は主にSSHの設定に関する内容を中心に解説します。

:::note warn
***VirtualBoxやUbuntuに関しての基礎知識については、以下の記事をご参考ください。***
:::


**VirtualBox関連の記事**

https://qiita.com/free-honda/items/ca757d6414a8ea344ea1

https://qiita.com/free-honda/items/bdce257a3407e1bb43b5

**SSH関連の記事**

https://qiita.com/free-honda/items/96a28eb26c02e596f908

https://qiita.com/free-honda/items/a215ebb22140fe11d789

**Ubuntu関連の記事**

https://qiita.com/tags/ubuntu

## 困っていたこと
1年前にVirtualBoxにAlmaLinuxを導入した際は、SSH周りの設定を特に意識することなく利用できていました。

:::note alert
***しかし、今回はDebian系のUbuntuを導入する中で、SSH接続ができない問題に直面しました。***
:::

原因として、フルバージョンのISOイメージではなく軽量バージョンのISOイメージを使用したため、***SSH関連のパッケージが初期状態でインストールされていなかった可能性が考えられます（あくまで推測）。***

**クライアント側での状況**
以下のコマンドで接続を試みましたが、接続が拒否されるエラーが発生しました。

```bash
➜  ~ git:(main) ✗ ssh root@192.168.1.7
ssh: connect to host 192.168.1.7 port 22: Connection refused
➜  ~ git:(main) ✗ ssh honda@192.168.1.7
ssh: connect to host 192.168.1.7 port 22: Connection refused
➜  ~ git:(main) ✗ 
```

**サーバー側での状況**

サーバー側でSSHサービスのステータスを確認したところ、以下のように ```ssh.service``` が見つからないというエラーメッセージが表示されました。

```bash
root@honda-ubuntu:~# systemctl status ssh
Unit ssh.service could not be found.
root@honda-ubuntu:~#
```

:::note warn
***これは、SSHサーバー（```ssh```）がシステムにインストールされていないか、または有効化されていないことを示しています。***
:::

## 原因特定してみた
まず、SSHサーバーがインストールされているかを確認しました。

```bash
sudo apt list --installed
```

```Listing... Done``` と表示された場合、SSHサーバー（```openssh-server```）はインストールされておらず、インストール可能な状態であることを示しています。

今回は、2029年4月までサポートが保証されている ***Ubuntu Server 24.04.1 LTS*** を使用しています。

https://jp.ubuntu.com/download

:::note info
***結論として、VirtualBox上のCLIを使用して ```openssh-server``` をインストールすることで問題は解決します。***
:::

## 実際に解決してみた
Ubuntuでは、```apt``` コマンドを使用して ```openssh-server``` をインストールします。

***以下の手順で解決しました。***

### 1. SSHサーバーのインストール
まず、必要なパッケージをインストールします。

```bash
sudo apt update
sudo apt install -y openssh-server
```

### 2. サービスの有効化と起動
次に、SSHサーバーを有効化して起動します。

```bash
sudo systemctl enable ssh
sudo systemctl start ssh
```

### 3. サービスのステータス確認
SSHサーバーが正常に動作しているか、以下のコマンドで確認します。

```bash
sudo systemctl status ssh
```

**実際の出力結果**
以下は、ステータス確認コマンドの実行結果です。

```bash
root@honda-ubuntu:~# sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; disabled; preset: enabled)
     Active: active (running) since Tue 2024-12-31 00:13:56 UTC; 15min ago
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 1510 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 1512 (sshd)
      Tasks: 1 (limit: 2276)
     Memory: 2.4M (peak: 3.3M)
        CPU: 85ms
     CGroup: /system.slice/ssh.service
             mq1512 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"
```

:::note warn
***Active: active (```running```) と表示されていれば、SSHサーバーは正常に動作しています。***
:::


### 4. 再度SSH接続を試行
SSH接続を再度試みた結果、以下のように無事に接続できました。

```bash
ssh root@<サーバーのIPアドレス>
```

**実際の出力結果**
以下は、コマンドの実行結果です。

```bash
➜  ~ git:(main) ✗ sudo ssh honda@192.168.1.7
honda@192.168.1.7's password: 
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-51-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Tue Dec 31 12:31:35 AM UTC 2024

  System load:  0.0                Processes:               113
  Usage of /:   38.6% of 11.21GB   Users logged in:         1
  Memory usage: 10%                IPv4 address for enp0s3: 192.168.1.7
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

70 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status


Last login: Tue Dec 31 00:14:22 2024 from 192.168.1.9
honda@honda-ubuntu:~$ uname -n
honda-ubuntu
honda@honda-ubuntu:~$ 
```

***無事にSSH接続が成功し、作業できる環境が整いました！良かったです（笑）。***

## まとめ

今回は、SSH接続ができない問題の原因特定から解決までを紹介しました。

:::note
***このような問題でつまずき、構築を諦めてしまうこともあるかもしれませんが、自分でエラーを確認し、原因を特定して解決する経験は、今後のスキル定着にもつながります。***
:::

悩むことは成長の糧となりますので、諦めずに解決に向き合っていくことが大切です。

***この記事が、同じような問題に直面した方の技術的な支えになれば幸いです！***

## おまけ：今後のこのサーバーの活用について
今回、SSH接続を解決したこのサーバーは、今後Ansibleのクライアントサーバーとして活用する予定です。

:::note warn
***そのため、最低限の軽量なISOイメージを使用して構築しました。***
:::

https://qiita.com/free-honda/items/9595c5b272a84c63e24b

ただし、自宅ラボの環境が充実してきたことで、***ホストOSであるWindows 11のリソースが限界に近づいている状況***です（笑）。

***そのため、物理的なサーバーの購入も検討しています。***

これからも自宅ラボ環境を進化させ、より効率的な検証を行っていきたいと思います！

## 関連記事

https://lpi.or.jp/lpic_all/linux/intro/intro02.shtml

https://techmania.jp/blog/linux0002/

https://www.sejuku.net/blog/111393