【VirtualBox】UbuntuへSSH、SFTPで接続する方法

プログラマのメモ帳

この記事では、VirtualBoxを使用して作成したUbuntuへSSH、SFTPで接続する手順を紹介しています。

「WindowsだけどLinuxのローカル開発環境が欲しい」という方の参考になればうれしいです。

今回構築する環境は以下のようになっています。
・ホストOS:Windows10
・ゲストOS:Ubuntu
・仮想化ツール:VirtualBox6.1
・ネットワーク構成:NATとホストオンリー
・SSHクライアント:Tera Term
・FTPクライアント:FileZilla

また、VirtualBoxはインストール済みであり、Ubuntuのisoイメージはダウンロードしてある前提で進めていきます。
今回はダウロード済みのubuntu-ja-18.04.3-desktop-amd64.isoを使用します。

紹介する流れはこんな感じです。

1 仮想マシンの作成
2 ホストオンリー側のIPアドレスを固定にする
3 SSHで接続する
4 SFTPで接続する

それでは構築していきましょう。

スポンサーリンク

1 仮想マシンの作成

(1) ホストオンリーアダプタの作成

まずは使用するホストオンリーアダプタを作成しましょう。ネットワークに関する詳細な説明は避けますが、NATとホストオンリーについて簡単にまとめておきます。

・NAT:ホストOSのIPアドレスを共有して外部のネットワークと接続するモード
→CentOSからインターネットへ接続することが出来ます。

・ホストオンリー:ホストOSとゲストOSとの間でネットワークを構成するモード
→WindowsとCentOSのみで通信することが出来ます。

ホストオンリーで使用するアダプタを作成するには「VirtualBoxマネージャ」→「ツール」→「ネットワーク」から作成します。

下の画像ではすでに作成済みですが、存在しない場合には「作成(C)」を選択します。

アダプターを手動で設定にすると、Windows10のデフォルトの設定では画像のように割り当てられるはずです。今回はデフォルトの設定のまま使用します。

また、作成したアダプターはホストOSであるWindows側からも確認できます。
「コントロールパネル」→「ネットワークとインターネット」を選択

「ネットワークと共有センター」を選択

左メニューの「アダプターの設定の変更」を選択

私の環境では、「イーサネット3」というアダプター名だったのでこのアダプターの「プロパティ」を選択します。

プロパティを開いて「インターネット プロトコル バージョン4(TCP/IPv4)」を選択して「プロパティ」を見ます。

先ほどVirtualBoxで指定したIPアドレスとサブネットマスクになっていることが確認できます。

(2) 仮想マシンを新規に作成する

ホストオンリーアダプタの作成が終わったので、仮想マシンを作ります。

「VirtualBoxマネージャ」→「新規(N)」を選択します。

下の画像のように設定します。
名前:仮想マシン名(自由)
マシンフォルダ:仮想マシンのフォルダ(自由)
タイプ:Linux
バージョン:Ubuntu(64bit)

設定したら「次へ」を選択します。

仮想マシンのメモリサイズを決定します。VirtualBoxでUbuntuを稼働させる推奨メモリは2GB以上みたいです。

今回のメモリサイズは2GBで作成します。

続いてハードディスクの割り当てを設定します。
新規で作成するので「仮想ハードディスクを作成する(c)」を選択します。

ハードディスクのタイプはVDI(VirtualBox Disk Image)を使用します。

ストレージについては「可変サイズ」を選択します。

ファイルの場所とサイズです。
ファイルの場所についてはデフォルトで「仮想マシンフォルダ」の直下に作成されるので、デフォルトのまま作成します。

今回サイズは「40GB」で作成します。

「VirtualBoxマネージャ」に戻ると、先ほど作成した仮想マシン「Ubuntu_18.4.3」があります。

この仮想マシンの「設定」から各種設定をしていきます。まずはこの仮想マシンを選択した状態で「設定(s)」を選択します。

設定画面を開いたら左メニュー「システム」を選択します。そして、「起動順序」を「ハードディスク」が「光学」よりも先になるように変更します。(これを設定しないと次回起動した時にもisoイメージからインストールしようとしてしまいます。)

続いて左メニュー「ネットワーク」を選択してアダプターを割り当てます。

下の画像のように設定します。
・アダプター1:NAT
・アダプター2:ホストオンリーアダプタ
※忘れずに「ネットワークアダプタを有効化(E)」にチェックを入れて下さい。

ここまで出来たら「VirtualBoxマネージャ」に戻って仮想マシンを起動します。

起動すると「起動ハードディスクを選択」という画面になるので、ディレクトリのアイコンをクリックしてダウンロードしておいたUbuntuの「isoファイル」を選択します。

ディレクトリのアイコンを選択するとこのような画面になるので、「追加(A)」をクリックして「isoファイル」を選択します。

起動ハードディスクから起動すると下の画像の画面になります。

「Ubuntuをインストール」をクリックします。
※左のメニューは気にしなくて大丈夫です。
※仮想マシンの画面からマウスが動かせなくなって困っている方がいますが、画面右下に「Right Control」とあるようにキーボードの右側コントロールキーを押せばホストOS側の操作に戻れます。

キーボードレイアウトの設定です。お使いのキーボードに合わせて設定しましょう。(私の場合はどちらもデフォルトの日本語設定です。)

「通常のインストール」と「Ubuntuインストール中にアップデートをダウンロードする」にチェックを入れて「続ける」を選択します。

「ディスクを削除してUbuntuをインストール」にチェックして「インストール」をクリックします。

「続ける」を選択します。

地域の設定です。デフォルトの「Tokyo」であることを確認して「続ける」をクリックします。

ユーザー情報を設定します。今回は「ubuntu」というユーザー名で作成します。

これでインストールは全て完了しました。

指示に従って仮想マシンを再起動します。

その後、作成したユーザーでログイン出来れば仮想マシンの作成は終了です。

(3) リポジトリ更新

作成した仮想マシンのリポジトリが古い可能性があるので更新しておきましょう。

まずはネットワークに接続します。仮想マシン右上のアイコンからEthernet(enp0s3)とEthernet(enp0s8)の接続をクリックします。

ちなみにEthernet(enp0s3)とEthernet(enp0s8)はそれぞれ
Ethernet(enp0s3):NAT
Ethernet(enp0s8):ホストオンリーネットワーク

に対応しています。

接続が出来たら端末(ターミナル)を開いて下記のコマンドを実行します。

sudo apt update

続いて、パッケージも最新化します。

sudo apt upgrade

※うまく更新できない場合は enp0s3 がNATで接続できているか確認してみてください。

アップデートが始まったら全てに「y」(yes)を入力して更新を完了します。
これで下準備は全て完了です。

2 ホストオンリー側のIPアドレスを固定にする

SSH、SFTPで接続するホストオンリー側Ethernet(enp0s8)のIPアドレスを固定で割り振ります。

まずは、のちに使用するコマンドが実行できるように「net-tools」を次のコマンドでインストールします。

sudo apt install net-tools

「net-tools」のインストールが終了したら、次のコマンドを実行します。

nmtui

そうすると、下の画像のようなGUIベースのNetworkManagerが起動するのでここから設定していきます。
「接続の編集」を選択します。
※項目の移動は「矢印キー」、選択は「エンターキー」で行います。

ホストオンリーアダプタのenp0s8は「有線接続2」のほうなので、こちらを選択してエンターキーを押します。

すると下のような画面になります。
デバイスのMACアドレスの後ろが「enp0s8」になっていることを確認しましょう。

確認できたら次のように設定を変更します。
IPv4 設定 <自動> → <手作業>
IPv6 設定 <自動> → <無視する>

変更後、IPv4の<表示する>を選択します。

下のような設定画面が出てくるので「アドレス<追加…>」を選択します。

アドレスに割り当てたいIPアドレスを打ち込みます。今回は例として、192.168.56.10/24とします。

なお、今回の設定では下の範囲でアドレスを割り当てることが可能です。
192.168.56.2/24 ~ 192.168.56.254/24

IPアドレスを割り当てたら下のほうにある「自動的に接続する」を選択して、スペースキーで[X]を入力します。

入力が完了したら<ok>を選択してNetworkManagerを終了します。

設定が終了したら仮想マシンを再起動してログインします。

ログインできたら端末(ターミナル)を開いて下のコマンドを入力します。

ifconfig

そうすると、ホストオンリーアダプタであるenp0s8のinetに先ほど設定したIPアドレスが割り当てられているのが分かります。

これでホストオンリー側のIPアドレスを固定にすることが出来ました。

このIPアドレスを使ってSSH、SFTPの順で接続していきます。

3 SSHで接続する

SSHで接続するためにまずは「openssh-server」をインストールします。

sudo apt install openssh-server

インストールが完了したら次のコマンドでサービスが起動しているか確認します。

systemctl status sshd

active(running)となっていれば起動しています。

ここからはホストOS(Windows)側での作業になります。

SSHクライアントの「Tera Term」を起動して画像のように入力して接続します。

初回のみこのような警告が出るので、「このホストをKnown hostsリストに追加する(A)」にチェックを入れて「続行(C)」をクリックします。

ログイン情報を入力しましょう。

無事に接続が出来ました。

4 SFTPで接続する

opensshを利用してSFTP接続が可能かどうか、念のため確認しておきましょう。端末(ターミナル)に下のコマンドを入力します。

cat /etc/ssh/sshd_config

設定ファイルがこのようになっていればopensshを利用してSFTPプロトコルのファイル転送が可能です。

# override default of no subsystems
Subsystem       sftp    /usr/lib/openssh/sftp-server

それでは接続します。FileZillaを起動します。
ホスト、ユーザー名、パスワード、ポートを指定して「クイック接続(Q)」をします。

※FTPではないのでポートは「22」を指定してください。

初回のみ警告画面がでるので、「常にこのホストを信用し、この鍵をキャッシュに追加(A)」にチェックを入れて「OK」を押します。

無事に接続できました。

以上になります。
これで最低限の開発環境は構築できたと思います。
参考になればうれしいです。

コメント

タイトルとURLをコピーしました