macOSからVirtualBoxのCentOSにssh接続するまで



環境は、macOS High Sierra バージョン 10.13.5、Virtualbox バージョン 5.2.12 r122591、CentOS-7 (1804)です。
CentOSのインストールまでは、こちらをご覧ください。

以下の例では、ゲストOSであるCentOSを、Macと同じネットワークに属させます。
この場合、VirtualBoxのネットワーク設定で、割り当てをブリッジアダプターにします。

仮想マシンの状態をバックアップ

設定に失敗しても後から元に戻せるように、VirtualBoxのスナップショット機能で、現在の仮想マシンの状態をバックアップしておきました。
スナップショットは、右上のマシンツールから画面を開き、作成ボタンで作成できます。

ネットワークの設定

ゲストOSであるCentOS 7に、固定IPアドレスを設定します。

nmcliコマンドを使います。
NetworkManagerというLinuxのネットワーク管理の仕組みがあり、そのコマンドラインインターフェースがnmcliです。

rootでCentOSにログインし、下記のコマンドを打つと、ネットワークインターフェースenp0s3が、disconnectedとなっていました。

# nmcli device status

下記のコマンドで、enp0s3をアクティブにします。

# nmcli con up enp0s3

下記のコマンドでIPアドレスを確認すると、筆者の自宅のネットワークはDHCPのため、DHCPでIPアドレスが割り当てられていました。

#ip addr

筆者の自宅のネットワークアドレスは、192.168.11.0/24でした。
PCやスマホと被らない適当なアドレスとして、CentOSに192.168.11.77を割り当てました。

# nmcli con mod enp0s3 ipv4.addresses 192.168.11.77/24

ネットワークインターフェースを再起動します。

# nmcli con down enp0s3
# nmcli con up enp0s3

Mac側のターミナルで、疎通確認ができました。

$ ping 192.168.11.77
PING 192.168.11.77 (192.168.11.77): 56 data bytes
64 bytes from 192.168.11.77: icmp_seq=0 ttl=64 time=0.976 ms
64 bytes from 192.168.11.77: icmp_seq=1 ttl=64 time=0.564 ms

このままだと、マシンを再起動すると、マシン起動時にenp0s3がまたdisconnectedのままになるので、起動時に勝手にアクティブになるようにします。

# nmcli con mod enp0s3 connection.autoconnect yes

一応、dhcpをOFFにしました。

# nmcli c modify enp0s3 ipv4.method manual

念のため、下記のコマンドで、設定されていることを確認しました。

# nmcli con show enp0s3

下記コマンドで再起動し、確かに設定が反映されていることを確認しました。

# shutdown -r now

ssh接続の確認と、rootによるsshログインの禁止

この時点で、MacからCentOSに対してssh接続できます。
が、rootでもssh接続できてしまいますので、rootによるsshログインを禁止します。

CentOSにrootでログインし、/etc/ssh/sshd_configを、下記のように書き換えます。

# PermitRootLogin yes

PermitRootLogin no

その後、下記コマンドで、sshdを再起動します。

# systemctl restart sshd

下記、Mac側のコマンドです。
rootでログインできなくなりました。
今後は、一般ユーザーでssh接続し、suコマンドでrootになって作業します。

$ ssh root@192.168.11.77
root@192.168.11.77's password:
Permission denied, please try again.

2018/7/13追記

公開鍵認証を設定する方法について書きました。

macOSからVirtualBoxのCentOSに公開鍵認証でssh接続できるようにする 

2018/7/22追記

上記の作業では必要ありませんが、DNSとデフォルトゲートウェイを設定しないと、後々不都合が生じると思います。
下記、192.168.11.1がDNSサーバー、デフォルトゲートウェイの場合。

# nmcli con mod enp0s3 ipv4.dns 192.168.11.1
# nmcli con mod enp0s3 ipv4.gateway 192.168.11.1

コメント

このブログの人気の投稿

PowerShell 6で、Shift_JISのCSVをImport-Csvで読み込んだら文字化けした

Windowsで、特定のユーザーに特定のサービスの再起動を許可する

PowerShellでイベントログを取得する時、「指定した選択条件に一致するイベントが見つかりませんでした。」が煩わしいのでcatchする