CentOS環境下で検証作業を行いたかった為、VirtualBoxを使用してVMを作りました。
イメージファイル落として起動するまでは、記事が多いので省きます。
ネットワーク関連の設定からやっていこうと思います。
「設定」 → 「ネットワーク」 をクリックして下さい。
設定の内容を確認します。デフォルトでは、割り当てが「NAT」で設定されているかと思います。※ネットワークアダプターが有効になっていない場合は、有効にして下さい。
公式マニュアルの確認するところ、NATはVirtualBox内部のプライベート・ネットワークに接続され、ホストからゲストの認識は行えないようです。ホストからは何もできないのかな?と考えましたが、ポートフォワーディング機能を使うと、ホスト上の特定ポートで受信したデータをゲストの何処かしらのポートに再送信出来るようです。
ssh等を実行する為には、ポートフォワーディングが必要というわけです。設定していきます。
「ポートフォワーディング」をクリックすると、以下のような画面が出てくると思います。
+マークを押して、設定を行う事ができます。
ホストポートの2222で受信したデータを、ゲストポートの22に転送するようにします。
これで、VirtualBoxの設定は終わりです。
ネットワークの設定は人によって違いがあるので、参考程度にして頂ければと思います。
お次は、ゲストOS側の設定を行っていきます。
/etc/sshd配下にあるsshd_configの編集を行います。
コマンドに不慣れな方がいるかもしれないので、少し丁寧に書いていきます。
pwdコマンドは、カレントディレクトリの表示。
cdコマンドは、ディレクトリを移動するコマンドです。下記のサンプルでは、ログイン後にpwdコマンドで現在地を確認。その後、cdコマンドで/etc/sshの移動を行っています。
../は、一つ上の階層を表します。
[root@localhost ~]# pwd
/root
[root@localhost ~]# cd ../etc/ssh
[root@localhost ssh]# pwd
/etc/ssh
ll(ls -lのエイリアス)コマンドを使用して、sshd_configの存在を確認します。
sshd_configの編集を行っていこうと思いますが、設定ファイル関連をいじる場合はコピーをとって作業に入ったほうがよいです。失敗しても、元に戻せます。
cpコマンドを実行します。権限/タイムスタンプも保持したままコピーしたいので、-pオプションを使用します。
※cpコマンドはファイルのコピーを行え、lsコマンドはファイル・フォルダの一覧を表示する。
[root@localhost ssh]# ll
-rw-r--r--. 1 root root 581843 8月 9 2019 moduli
-rw-r--r--. 1 root root 2276 8月 9 2019 ssh_config
-rw-------. 1 root root 3907 6月 30 21:09 sshd_config
[root@localhost ssh]# cp -p sshd_config sshd_config_bk
[root@localhost ssh]# ll
-rw-r--r--. 1 root root 581843 8月 9 2019 moduli
-rw-r--r--. 1 root root 2276 8月 9 2019 ssh_config
-rw-------. 1 root root 3907 6月 30 21:09 sshd_config
-rw-------. 1 root root 3907 6月 30 21:09 sshd_config_bk
編集を行います。
viコマンドを実行して、ファイルの編集を行っていきます。
中に色々書いていますが、PasswordAuthentication と記載されている行の確認のみを行います。スクロールして探してください。
ここがyesであれば、編集する必要はありません。:キーを押して、q!を入力して下さい。
ファイルの編集が終了して、元のコマンドが入力できる状態に戻ります。
noの場合は、yesに変更する必要があります。iキーを押して、ファイルに書き込みを行えるモードになります。
no → yes に書き換えた後に、Escキー→:キー順番で押して、wqを入力して下さい。ファイルが保存された状態で、元のコマンドが入力できる状態に戻ります。
上記確認後に、sshdサービスの再起動を行います。
systemctlコマンドを使用します。(サービスの起動やステータスの確認等を行えます。)
[root@localhost ssh]# systemctl restart sshd
nmcliコマンドでネットワークの状況を確認します。
自分の環境下では、切断されていましたので接続させます。
Connection up デバイス名 で接続出来ます。
[root@localhost ssh]# nmcli device
DEVICE TYPE STATE CONNECTION
enp0s1 ethernet disconnected --
[root@localhost ssh]# nmcli connection up enp0s1
[root@localhost ssh]# nmcli device
DEVICE TYPE STATE CONNECTION
enp0s1 ethernet connected --
次回以降の起動時に自動接続するように下記コマンドを実行します。
その後、network.serviceの再起動を行います。
[root@localhost ssh]# nmcli connection modify enp0s1 connection.autoconnect yes
[root@localhost ssh]# systemctl restart network.service
後はsshコマンドを実施するだけです。
ホストOSはwindows11でしたので、Powershellからsshコマンドを実施します。
成功すると、ゲストOSに接続する事が出来ます。
PS C:\> ssh test_01@localhost -p 2222
test_01@localhost's password:
[test_01@localhost ~]$
以上です。参考になれば幸いです。