疲れたらやすむ

Javaを学ぶ上でハマったところを書いていきます。iPhoneアプリ開発や日常ネタもあるかも。

【macOS】【CentOS】CentOS SSH接続編【環境構築】

仮想環境構築の第3弾です。

今回はSSH接続です。

実施環境

macOS Catalina 10.15.2
VirtualBox 6.0.14
CentOS 8.0.1905

SSHとは

SSHとは「Secure Shell」の略で、ネットワークに接続して他のコンピュータを遠隔操作することです。
Secureと付いているだけあって通信に関する情報は暗号化されているため安全な接続が確立されています。

IT関係の仕事をしていると、WindowsであればTeraTermというソフトウェアを利用してリモートサーバにSSHで接続する機会も少なくないと思います。
Macの場合はデフォルトで入っているターミナルを利用することが可能です。

なぜSSHで仮想環境に接続するのか

これに関しては完全に個人的な意見です。

ただ単にVirtualBoxよりもターミナルの方が見やすいからです。

自分のPCの仮想環境であれば、正直無理してSSHで操作する必要はないかもしれません。
逆に社内のサーバへ接続する場合などは、社内サーバ本体を直接操作出来ないケースがほとんどなのでSSHで接続することが多いです。

さらにVirtualBoxの仮想マシンは、一度フォーカスすると画面外にカーソルを移動させるためにホストキーを押下する必要があります。
この操作が意外と煩わしいのも理由の1つですね。
ちなみにホストキーはMacだとデフォルトは左Commandキーですが、私の環境では左Commandキー+fnキーで抜けられます。

CentOSの設定

CentOSの設定から行います。

こちらを参考に進めました。

qiita.com

まずはCentOSを起動しrootでログイン後し以下のコマンドを入力します。

$ nmtui

この状態でEnterキーを押下します。

f:id:chibiCat:20191226002531p:plain

青い画面に切り替わります。
「Edit a connection」を選択状態でEnterキーを押下します。

f:id:chibiCat:20191226002959p:plain

「enp0s8」と「enp0s3」が表示されているかと思います。
この時点でどちらか片方しか無い場合は仮想マシンのネットワークアダプタの設定が間違っています。
ちなみにCentOSをインストール後にネットワークの設定を変更した場合は正しく反映されず「enp0s8」が表示されませんでした。

まずは「enp0s3」を選択しEnterキーを押下します。

f:id:chibiCat:20191226003114p:plain

以下の変更を行い「OK」を選択します。
・「IPv6 CONFIGURATION」を「Ignore」に変更。
・「Automatically connect」にチェック(Spaceキーでチェック)。

f:id:chibiCat:20191226003710p:plain

続いて「enp0s8」を選択しEnterキーを押下します。

f:id:chibiCat:20191226004448p:plain

以下の変更を行い「OK」を選択します。
・「IPv4 CONFIGURATION」を「Manual」に変更。
・「IPv4 CONFIGURATION」の「Show」を選択し「Addresses」に「192.168.56.10/24」を入力。
・「IPv6 CONFIGURATION」を「Ignore」に変更。
・「Automatically connect」にチェック。

f:id:chibiCat:20191226182914p:plain

IPv4のAddressesに設定する値はホストネットワークの設定に従ってください。

f:id:chibiCat:20191226184751p:plain

デフォルトの設定では「192.168.56.1/24」になっているかと思います。
その場合、IPv4に設定可能なのは「192.168.56.2/24〜192.168.56.254/24」までのようです。

話が逸れましたが、設定は以上で完了なので「Back」を選択します。

f:id:chibiCat:20191226190749p:plain

「Quit」を選択します。

f:id:chibiCat:20191226190822p:plain

変更したネットワーク設定を反映するため、以下のコマンドを入力しEnterキーを押下します。

$ service NetworkManager restart

こんな感じになればOKです。

f:id:chibiCat:20191226190827p:plain

ターミナルからSSH接続

ターミナルを起動し以下のコマンドを入力します。

$ ssh root@192.168.56.10

Enterキーを押下すると初回接続時のみ以下のメッセージが出力されます。

The authenticity of host '192.168.56.10 (192.168.56.10)' can't be established.
ECDSA key fingerprint is SHA256:LhplNxOPE82n1v4/OHCo53a4K7c9mdaKQ3jWda0f3wI.
Are you sure you want to continue connecting (yes/no)? 

「yes」を入力するとパスワードが求められるので入力します。

f:id:chibiCat:20191227013704p:plain

成功です!
これでホストPCから仮想マシンの操作が出来ますね。

SSH接続の情報管理

毎回SSH接続をするためにユーザ名やホスト名を入力するのは面倒ですよね。
1つのサーバだけならまだしも、複数のサーバを管理するとなると覚えていられないです。

そこで便利なのがsshの接続情報を管理しておく設定ファイルです。

ターミナルを開いて以下のコマンドを入力します。

$ vim ~/.ssh/config

エディタが起動するので以下の様に接続情報を書きます。
Hostに接続に使用する名前、Userにログインユーザ、Hostnameにホスト名です。

config

# CentOS root
Host CentOS
  User root
  Hostname 192.168.56.10

Hostの名前でssh接続できるようになります。

$ ssh CentOS

f:id:chibiCat:20191227015031p:plain

お疲れ様でした。
いよいよそれっぽい環境が整ってきました。