VirtualBoxでホストOSからゲストOSにアクセスする

*仮想マシンへのDebianのインストール方法は下記を参照してください。* [仮想マシンにDebianをインストールしよう](https://bootcamp.fjord.jp/articles/5) ## コンソールを直接使うのは不便 Debianをコマンドラインで使えるようになりましたが、VirtualBoxの仮想マシン上のLinuxコンソールは機能が貧弱なので使いづらいです。 ![ss](https://i.gyazo.com/082fb9b02250258bfb8071a57ba4e8c3.png) そこでsshを使ってmacのTerminal.appから接続できるようにすればさまざまな機能が使えて便利です。そこでVirtualBoxのネットワークの機能を設定してホストOSからゲストOSにネットワーク経由でアクセスできるようにしましょう。 (sshについては[ssh の基本を理解する](https://bootcamp.fjord.jp/practices/10)のプラクティスで学びます。今はこの後のネットワークの設定だけあらかじめやっておきましょう。) おさらいをすると、この場合ホストOSはmac(Windowsでやっている方はWindows)、ゲストOSはDebianになります。 ![Image from Gyazo](https://i.gyazo.com/811a17a39184de4a69bcbe6acd6a96b3.png) ## ブリッジアダプターを使う VirtualBoxで可能なネットワーク設定にはいくつか種類がありますが、その中のブリッジアダプターを使うことでホストOSからゲストOSにアクセスすることができます。 (他の方法もありますが、初心者にとって1番使い易いのがブリッジアダプターなのでその説明をします。) 仮想マシンの設定画面の**ネットワーク**タブを選んでください。デフォルトでは下記のように**NAT**が選ばれています。 ![Image from Gyazo](https://i.gyazo.com/d719fa4bff5f206d7ccd4ff80fff2e35.png) **NAT**ではホストOSからゲストOSにネットワークを通じてアクセスできないので**ブリッジアダプター**を選んでください。 ![Image from Gyazo](https://i.gyazo.com/a8a9df6d0cc5c699f04983ee380ec1b3.png) **名前**の部分は自分のマシンにあるネットワークインターフェースを選ぶのですが、自分のホストOSがネットに接続するのに使っているネットワークインターフェースを選んでください。 といってもわからないと思うので説明すると、macであれば**システム環境設定**の**ネットワーク**を見ると、ネットワークインターフェースには下記のような種類がインストールされています。 ![Image from Gyazo](https://i.gyazo.com/10d6d9576586f9b20bc7293428469500.png) **USB 10/000/1000 LAN**というのは有線LANです。**Wi-Fi**はそのままWi-Fiです。僕の環境では有線LANでインターネットに接続しているのでブリッジネットワークの設定で選ぶのもこの**USB 10/100/1000 LAN**になります。 (外出先などWi-Fiでネットに接続しているときは**Wi-Fi**を選ぶようにします。ブリッジアダプターのちょっと面倒なところがここです。) ## ゲストOSのIPアドレスを知る ブリッジアダプターの設定が終わりましたがゲストOSのIPアドレス(ネットワーク上の住所)がわからないと接続することができません。 ゲストOSであるDebianのコンソールから`ip a`コマンドを使ってIPアドレスを調べましょう。 ```shell $ ip a ``` ![Image from Gyazo](https://i.gyazo.com/230db2843e21053d13ae224ccac7e37f.png) ゲストOSのIPアドレスが`192.168.1.6`であることがわかりました。 ## sshで接続する(注意) 上記でわかったIPを使ってsshで接続してみましょう。 <span style="color:red">**注意**</span> <span style="color:red">(ここではまずはブリッジアダプターの設定だけしておきましょう。[ssh の基本を理解する ](https://bootcamp.fjord.jp/practices/10)のプラクティスでsshの設定を学んで、sshの設定が済んでからからここに戻ってきて下記の接続を試しましょう)</span> Terminal.appで下記のコマンドで接続できます。 ```shell % ssh komagata@192.168.1.6 ``` `komagata`は僕の環境でのユーザー名。`192.168.1.6`のアドレスに対して`komagata`ユーザーとしてsshで接続しようとしています。 ![Image from Gyazo](https://i.gyazo.com/97d2846d233a0357d994aa7ba8f933b2.png) 接続できました! 同じCLIなので変化に乏しいですが、macからdebianに接続できています。 「直接コンソールを使った場合と何が違うの?」 と思うかもしれませんが、Terminal.appであればウィンドウを大きくして1行にもっとたくさんの文字を表示させたり、macからスムーズにコピペしたり、日本語を表示したりと何かと便利です。