記事検索

検索ワードを入力してください。
Sky Tech Blog
ヘッドレス起動した​VirtualBoxに​ホストOSから​SSH接続する

ヘッドレス起動した​VirtualBoxに​ホストOSから​SSH接続する

VirtualBoxでヘッドレス起動した仮想マシンにホストOSからSSH接続する方法について説明しています。ゲストOSが物理的に離れた場所のハードウェアに構築されていたり、GUI操作する必要が無い方向けの内容です。

ヘッドレス起動したVirtualBoxにホストOSからSSH接続する方法を紹介します。

この​記事は​誰に​向けてか?

VirtualBoxで構築したゲストOSをCUIで操作したい人向けです。
その中でもゲストOSが物理的に離れた場所のハードウェアに構築されていたり、そもそもGUI操作する必要が無い方向けです。

VirtualBoxとは

オープンソースの仮想化ソフトウェアです。
既存のOS上で、別のOSを実行するのに使う仮想環境(仮想マシン)を構築できます。
https://www.virtualbox.org/

動作環境

ホストOS

  • Ubuntu 22.04.5 LTS (Jammy Jellyfish)
  • OpenSSH_8.9p1 Ubuntu-3ubuntu0.13, OpenSSL 3.0.2 15 Mar 2022

ゲストOS

  • Debian GNU/Linux 10 (buster)
  • OpenSSH_7.9p1 Debian-10+deb10u4, OpenSSL 1.1.1n 15 Mar 2022

VirtualBox

  • 7.1.8 r168469 (Qt6.5.3)

ヘッドレス起動に​ついて

VirtualBoxをCUIからのみ操作するのであれば、ヘッドレス起動がおすすめです。
ヘッドレス起動とは、仮想マシンをコンソール画面を表示せずにバックグラウンドで起動する方法です。
VirtualBoxのコンソール画面を表示しないため、ホストOSのリソースを節約できます。
ヘッドレス起動の手順は以下の通りです。

  • 事前に仮想OS名を確認しておきます。
    例として、この記事では「MyVirtualBox」というOS名で記載していきます。
ubuntu@user:~$ VBoxManage list vms

"MyVirtualBox" {36bec838-2efb-44e5-a227-5ce5b2371733}
  • 上記で確認したOS名でヘッドレス起動を行います。
ubuntu@user:~$ VBoxManage startvm MyVirtualBox --type headless

Waiting for VM "MyVirtualBox" to power on...
VM "MyVirtualBox" has been successfully started.

これだけでヘッドレス起動ができます。

  • ViratulBoxの終了もコマンドから実行可能です。
ubuntu@user:~$ VBoxManage controlvm MyVirtualBox poweroff

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

ホストOSから​VirtualBoxに​SSH接続する

事前に​ゲストOSに​SSHサーバーを​インストールしておく

既にゲストOSにSSHサーバーがインストールされている方は読み飛ばしてください。

未インストールの場合は、任意のSSHサーバーをゲストOSにインストールします。
ここでは例としてDebian系LinuxディストリビューションでOpenSSHサーバーをインストールするためのコマンドを記載します。

  • OpenSSHサーバーをインストールします。
sudo apt install openssh-server
  • SSHサービスを有効にし、再起動します。
sudo systemctl enable ssh
sudo service sshd restart

ホストOSから​SSH接続する​ための​設定を​行う

ヘッドレス起動の動作確認と、ゲストOSでのOpenSSHサーバーのインストールが完了したら、ホストOSからSSH接続するための設定を行います。

  • (ホストOS上で)ポートフォワードの設定を行います。
    ※ホストOSのポートは任意でOKです。ここでは例として「54321」とします。
VBoxManage modifyvm MyVirtualBox --natpf1 "guestssh,tcp,,54321,,22"

このコマンドはホストOSのポート54321に到着するTCPトラフィックを、ゲストOSのポート22に転送する設定を行っています。
これにより、ホストOSのポート54321を通じてゲストOSのSSHサービス(通常ポート22で動作)にアクセスできるようになります。

本設定はVirtualBoxのGUIからも可能です。

  • (ホストOS上で)最後に、ホストOSからゲストOSに対してSSH接続します。
ssh -p 54321 v_box_user@localhost

おわりに

Virtual BoxのGUIはホストOSのリソースを多く使用します。
ホストOSのスペックにも依存しますが、3Dアクセラレーションを有効にしないとまともに動かない、なんてことも多々あると思います。
また、共有サーバーなどにゲストOSの環境構築がされていた場合など、物理的に離れた場所からの操作時にも役立つと思います。


\シェアをお願いします!/
  • X
  • Facebook
  • LINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム