はじめに
自宅のホームラボ環境に新たにUbuntuを導入しました。導入のきっかけは、これまでRed Hat(rpm系)を中心にLinuxを扱っていましたが、改めてDebian系のLinuxについても学びたいと思ったからです。
ただ、ホストOSであるWindows 11のスペックが限界に近かったため、軽量版を選んで導入することにしました。
当初は、ターミナルやTera TermなどのSSHソフトを使用して作業を進める予定でしたが、そもそもSSH接続ができないというエラーに直面しました。
本記事では、その原因特定から解決方法までをまとめてご紹介します。
前提知識
今回は主にSSHの設定に関する内容を中心に解説します。
VirtualBoxやUbuntuに関しての基礎知識については、以下の記事をご参考ください。
VirtualBox関連の記事
SSH関連の記事
Ubuntu関連の記事
困っていたこと
1年前にVirtualBoxにAlmaLinuxを導入した際は、SSH周りの設定を特に意識することなく利用できていました。
しかし、今回はDebian系のUbuntuを導入する中で、SSH接続ができない問題に直面しました。
原因として、フルバージョンのISOイメージではなく軽量バージョンのISOイメージを使用したため、SSH関連のパッケージが初期状態でインストールされていなかった可能性が考えられます(あくまで推測)。
クライアント側での状況
以下のコマンドで接続を試みましたが、接続が拒否されるエラーが発生しました。
➜ ~ 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
が見つからないというエラーメッセージが表示されました。
root@honda-ubuntu:~# systemctl status ssh
Unit ssh.service could not be found.
root@honda-ubuntu:~#
これは、SSHサーバー(ssh
)がシステムにインストールされていないか、または有効化されていないことを示しています。
原因特定してみた
まず、SSHサーバーがインストールされているかを確認しました。
sudo apt list --installed
Listing... Done
と表示された場合、SSHサーバー(openssh-server
)はインストールされておらず、インストール可能な状態であることを示しています。
今回は、2029年4月までサポートが保証されている Ubuntu Server 24.04.1 LTS を使用しています。
結論として、VirtualBox上のCLIを使用して openssh-server
をインストールすることで問題は解決します。
実際に解決してみた
Ubuntuでは、apt
コマンドを使用して openssh-server
をインストールします。
以下の手順で解決しました。
1. SSHサーバーのインストール
まず、必要なパッケージをインストールします。
sudo apt update
sudo apt install -y openssh-server
2. サービスの有効化と起動
次に、SSHサーバーを有効化して起動します。
sudo systemctl enable ssh
sudo systemctl start ssh
3. サービスのステータス確認
SSHサーバーが正常に動作しているか、以下のコマンドで確認します。
sudo systemctl status ssh
実際の出力結果
以下は、ステータス確認コマンドの実行結果です。
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"
Active: active (running
) と表示されていれば、SSHサーバーは正常に動作しています。
4. 再度SSH接続を試行
SSH接続を再度試みた結果、以下のように無事に接続できました。
ssh root@<サーバーのIPアドレス>
実際の出力結果
以下は、コマンドの実行結果です。
➜ ~ 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接続ができない問題の原因特定から解決までを紹介しました。
このような問題でつまずき、構築を諦めてしまうこともあるかもしれませんが、自分でエラーを確認し、原因を特定して解決する経験は、今後のスキル定着にもつながります。
悩むことは成長の糧となりますので、諦めずに解決に向き合っていくことが大切です。
この記事が、同じような問題に直面した方の技術的な支えになれば幸いです!
おまけ:今後のこのサーバーの活用について
今回、SSH接続を解決したこのサーバーは、今後Ansibleのクライアントサーバーとして活用する予定です。
そのため、最低限の軽量なISOイメージを使用して構築しました。
ただし、自宅ラボの環境が充実してきたことで、ホストOSであるWindows 11のリソースが限界に近づいている状況です(笑)。
そのため、物理的なサーバーの購入も検討しています。
これからも自宅ラボ環境を進化させ、より効率的な検証を行っていきたいと思います!
関連記事