macからCentOS7へのSSH接続(パスワード認証)の仕方

CentOSのサーバ構築にあたり
だいぶハマったのでSSH接続(パスワード認証)方法をまとめた。

#環境
- ホストOS
   macOS High Sierra(10.13.2)
   VirtualBox 5.1.30

- ゲストOS
   CentOS 7.4

#ホストOS設定
#VirtualBoxにSSH接続用のネットワークアダプター追加
　　1. [VirtualBox] -> [設定] -> [ネットワーク] -> [ホストオンリーネットワーク]を選択
　　<img width="662" alt="スクリーンショット 2018-01-16 17.54.40.png" src="https://qiita-image-store.s3.amazonaws.com/0/168721/c7a7c3dd-71eb-ff96-4ab0-f187cf44e9dd.png">

　画面右側の"＋"があるアイコン(一番上のアイコン)をクリックすると"vboxnet0"が追加される。
　画面右側のドライバアイコン(一番下のアイコン)をクリックし、IP/サブネットマスクをメモする。

<img width="662" alt="スクリーンショット 2018-01-16 17.58.05.png" src="https://qiita-image-store.s3.amazonaws.com/0/168721/979c8eaa-a3a4-c65c-0b8f-663b8d743205.png">

 ここでは"192.168.56.1"と"255.255.255.0"をメモ。
2. [OK]を順次選択し、設定を完了

#仮想マシンにネットワークアダプター設定を追加

1. [設定] -> [ネットワーク] -> [アダプター 2]を選択
2. [ネットワークアダプターを有効化]をチェック
3. [割り当て]を"ホストオンリーアダプター"に設定
 この時に、[名前]が"vboxnet0"になることを確認する。

4. [OK]を順次選択し、設定を完了

1〜3を実施した時、以下の画面になる。
<img width="891" alt="スクリーンショット 2018-01-17 13.18.04.png" src="https://qiita-image-store.s3.amazonaws.com/0/168721/6ea714c2-a96b-4106-b7b2-6b16e3bed913.png">

ホストOS側の設定は以上。

#ゲストOS設定
##CentOSをインストール
1. VirtualBoxのダウンロード
　[Oracle VM VirtualBox](http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html?ssSourceSiteId=otnjp)からインストーラをダウンロード・インストール。(本記事の記載時点ではバージョン5.2.4が最新)
　ここでは詳細を省略します。

2. CentOSのイメージダウンロード
　[Download CentOS](https://www.centos.org/download/)で任意のミラーサイトからダウンロード。

3. VirtualBoxにCentOSをインストール
　インストール方法は記載を省略します。

##CentOSのネットワーク設定
NetworkManagerを用いて設定するため、以下コマンドを実行します。

```
# nmtui
```

すると、CentOSが以下のような画面になります。
<img width="832" alt="スクリーンショット 2018-01-17 14.29.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/168721/fffe6a66-73b1-d022-a46c-e43e421669d4.png">

[Edit a connection]を選択すると、以下の画面に切り替わるのでネットワークインターフェース"enp0s3"と"enp0s8"の設定を変更します。
まずは"enps0s3"の設定です。
<img width="832" alt="スクリーンショット 2018-01-17 14.30.22.png" src="https://qiita-image-store.s3.amazonaws.com/0/168721/0c536913-7a69-dd4a-d697-fdac2e4a9245.png">

IPv6設定を無効([IPv6 CONFIGURATION]:Ignore)にし、自動接続をON([Automatically connect]をチェック)にします。
ちなみに、[Automatically connect]をチェックはスペースキー押下で行います。

次は"enp0s8"の設定です。
<img width="832" alt="スクリーンショット 2018-01-17 14.30.56.png" src="https://qiita-image-store.s3.amazonaws.com/0/168721/2225b9ab-487a-3d5a-2b5b-e21b0c8f2487.png">

IPv4アドレスを192.168.56.10/24に設定します。
`「VirtualBoxにSSH接続用のネットワークアダプター追加」`でメモしたIP/サブネットマスクから
192.168.56がネットワーク部となっているのでホスト部に任意の値を設定しています。(ここでは10を設定)
"/24"は"255.255.255.0"のサブネットマスクであることを示しています。
あとは、"enp0s3"と同様、Ipv6の無効・自動接続のONを設定します。

ここまできたら、[OK]を順次選択し設定を完了させます。

##SSH接続で使用するアダプターを固定IPに設定
SSH用のネットワークアダプター"enp0s8"の設定ファイルを変更します。
まずは、設定ファイルを開きます。

```
# vim /etc/sysconfig/network-script/ifcfg-enp0s8
```


開くと以下のような設定になっていると思います。


```
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONPY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=<記載省略>
DEVICE=enp0s8
ONBOOT=yes
IPADDR=192.168.56.10
PREFIX=24
```

`IPADDR`と`PREFIX`はNetworkManagerで設定済みなので変更不要です。
`BOOTPROTO`を"dhcp"から"none"に変更し、ファイルを保存して閉じます。

##ネットワークサービスの再起動
以下のコマンドを実行し、これまでの設定を反映させます。

```
# systemctl restat NetworkManager
```

`ip addr`を実行し、"enp0s8"にIPアドレスが付与されていたらSSH接続の設定完了です。


#SSH接続(パスワード認証)の確認
macのターミナルから以下コマンドで接続できるか確認します。


```
$ ssh <ログインユーザ名>@192.168.56.10
```

#まとめ
SSH接続(パスワード認証)できるようになるまで、非常に時間が掛かりました。(数日以上。。。)
LAMP環境構築がゴールなのですが、もうこの時点で環境構築のめんどくささを痛感しております。
※構築経験のある方はこんな段階でつまずくことはないんだろうとは思いますが。。。

環境を大量に構築しないといけない時とか、いちいちやってらんないですね！
だからDocker・Vagrant・Ansibleとか色々なツールがあるのかなぁと思いました。

LAMP環境構築まで出来たら、VagrantとかAnsibleについて調査してみようと思います。