この記事では、SSHを使ってVirtualBox上のUbuntu Serverに接続し、日常的な開発作業を行う方法を簡単に紹介します。
準備
- インストール済みの VirtualBox ソフトウェア
- 作成済みの Ubuntu Server 24.04 LTS 仮想マシン
1. 仮想マシンにSSHサービスをインストールする
# ソフトウェアソースを更新
sudo apt update && sudo apt upgrade
# SSHサービスをインストール
sudo apt install openssh-server
# SSHサービスが正常にインストールされたか確認
sudo systemctl status ssh

2. VirtualBoxのネットワークを設定する
デフォルトでは、VirtualBoxは仮想マシンにネットワークアドレス変換(NAT)アダプターを作成します。これにより仮想マシンはインターネットにアクセスできますが、他のデバイスからSSH経由でアクセスすることはできません。
仮想マシン起動時に、ip -4 addr コマンドで仮想マシンのIPアドレスを確認できます。仮想マシンのIPアドレスが 10.0.2.16 であることがわかります。後で使用するのでメモしておいてください。

次に、仮想マシンの電源を切り、ネットワークの設定を開始します。
- 設定したい仮想マシンを右クリックし、設定(Settings)の歯車アイコンをクリックして設定ウィンドウを開きます。
- ネットワーク(Network)タブをクリックし、デフォルトで選択されている最初のアダプター(Adapter 1)をそのままにします。
- 次に、詳細設定(Advanced)をクリックして展開し、ポートフォワーディング(Port Forwarding)をクリックして設定ウィンドウを開きます。

Network Setting

Port Forwarding
- 右側の緑色の追加(Add)ボタンをクリックし、新しいポートフォワーディングルールを追加します。
- 表示されたウィンドウで、以下のパラメータを設定します。
- 名前:SSH
- プロトコル:TCP
- ホストIP:127.0.0.1
- ホストポート:12022
- ゲストIP:10.0.2.15
- ゲストポート:22
- OKボタンをクリックして、ポートフォワーディングルールの追加を完了します。
3. SSHで接続する
ローカル端末で、ssh コマンドを使って仮想マシンに接続します。
ssh -p 12022 username@127.0.0.1
# username は仮想マシンのログインユーザー名
# パスワードを入力
(invisible)
# 接続成功
Welcome to Ubuntu 24.04 LTS (GNU/Linux 5.4.0-137-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information disabled due to load higher than 1.0
0 updates can be applied immediately.
Last login: Tue Jan 17 23:30:22 2023 from 10.0.2.2
4. SSHパスワードなしログインを設定する
ローカル端末で、ssh-keygen コマンドを使ってSSHキーペアを生成します。
ssh-keygen -t rsa -b 4096 -C "awsuser@myserver"
# ファイル名を入力
mykey
# パスワードを入力
(invisible)
# パスワードを再入力
(invisible)
awsuser@myserver はご自身のメールアドレスに置き換えてください。
ファイル名を変更しないと、既存のキーペアが上書きされるので注意してください。
ローカル端末で、ssh-copy-id コマンドを使って公開鍵を仮想マシンにコピーします。
ssh-copy-id -i ~/.ssh/mykey -p 12022 user@127.0.0.1
# パスワードを入力
(invisible)
ローカル端末で、ssh コマンドを使って仮想マシンに接続します。
ssh -p 12022 username@127.0.0.1
# パスワードは不要になりました
Welcome to Ubuntu 24.04 LTS (GNU/Linux 5.4.0-137-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information disabled due to load higher than 1.0
0 updates can be applied immediately.
Last login: Tue Jan 17 23:30:22 2023 from 10.0.2.2
5. SSHパスワードログインを無効にする
仮想マシン内で、sudo コマンドを使ってSSH設定ファイルを編集します。
sudo vim /etc/ssh/sshd_config
# PasswordAuthentication パラメータを変更
PasswordAuthentication no
# ESCキーで編集モードを終了し、:wq と入力して保存して終了します。
# SSHサービスを再起動します。
sudo systemctl restart sshd