【VirtualBox】CentOS8へSSH、SFTPで接続する手順

プログラマのメモ帳

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

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

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

また、VirtualBoxはインストール済みであり、CentOS8のisoイメージはダウンロードしてある前提で進めていきます。
今回はダウロード済みのCentOS-8.1.1911-x86_64-dvd1.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
バージョン:Other Linux(64bit)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

起動ハードディスク(isoファイル)から起動すると下の画面のようになるので、1番上の「Install CentOS Linux8」を選択してインストールします。

セットアップが終わると、まずは言語選択の画面になるので「日本語」を選択します。

※仮想マシンの画面からマウスが動かせなくなって困っている方がいますが、画面右下に「Right Control」とあるようにキーボードの右側コントロールキーを押せばホストOS側の操作に戻れます。

見切れていますが、「システム」のインストール先を選択します。

デフォルトで問題ないので、「完了」をクリックします。

「ソフトウェアの選択(S)」が「サーバー(GUI使用)」になっていることを確認しましょう。

確認ができたら、「時刻と日付(T)」を選択します。

地域と都市を設定して「完了」をクリックします。
地域(R):アジア
都市(C):東京

ここまで出来たら、「インストールの開始」をクリックします。

インストールが始まると同時に「ユーザーの設定」が必要になります。

rootのパスワードを設定します。

ユーザーを作成します。このユーザーに管理者権限を付与したい場合は「このユーザーを管理者にする(M)」にチェックを入れて下さい。

ここまででインストールの設定は終了です。インストールが終了すると、再起動を指示されるので仮想マシンを再起動しましょう。

再起動するとライセンスへの同意を求められるので承諾します。

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

(3) リポジトリ更新

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

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

ちなみにEthernet(enp0s3)とEthernet(enp0s8)はそれぞれ
Ethernet(enp0s3):NAT
Ethernet(enp0s8):ホストオンリー
ネットワーク
に対応しています。

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

dnf update

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

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

SSH、SFTPで接続するホストオンリー側Ethernet(enp0s8)のIPアドレスを固定で割り振ります。端末(ターミナル)を開いて下のコマンドを実行します。

nmtui

そうすると、下の画像のようなGUIベースのNetworkManagerが起動するのでここから設定していきます。
「接続の編集」を選択します。

ホストオンリーアダプタの 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で接続する

まずは端末に下のコマンドを入力して「sshd」が起動していることを確認しましょう。

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/libexec/openssh/sftp-server

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

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

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

無事に接続できました。

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

コメント

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