NetBSDインストール後の環境設定

# NetBSDインストール後の環境設定

今日の記事では、NetBSDインストール後の一通りの環境設定について書こうと思います。
sshログインができるようになる所までの手順になります。

## VirtualBoxからNAT接続するための設定

[昨日の記事](http://qiita.com/furandon_pig/items/5882ede06b5b5d3bf439 "昨日の記事")ではVirtualBox上の仮想マシンにNetBSDをインストールしてみました。

![img044.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/93753c48-b7c2-f55b-8ab0-fa73ac250168.png)

仮想マシンはNATでネットワークに接続する形にしたいと思いますが、これに関連して、あらかじめVirtualBox側でポートフォワーディングの設定を行っておきます。

![img007.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/843255b0-e139-9add-5b3c-9da2626b9538.png)

「ポートフォワーディング」を選択し、2222番ポートへの要求が仮想マシン(NetBSD)の22番ポートにリダイレクトされるよう設定します。

![img008.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/7318e147-7121-ca21-7a26-e4e85252e567.png)

## インストール後の設定

NetBSDを起動、rootユーザでログインした状態で以降の手順を実施します。

### ホスト名を設定する

デフォルトのホスト名は"Amunesiac"になっているので、以下のようにしてホスト名を設定します。私が今期のアニメでかなりハマっている「[四月は君の嘘](http://www.kimiuso.jp "四月は君の嘘")」になぞらえて、ホスト名は"kimiuso"にしてみましょう。
(実際は"nbsd615amd64"とか区別の付けやすいホスト名にしてくださいおねがいします...)

![img002.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/568cc20d-44f1-de1b-77b4-6653359d970c.png)

### ネットワークインタフェースの設定

次にネットワークインタフェースを設定します。wm0という名前のインタフェースに設定します。

![img003.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/16a5f750-2920-6341-4b65-14b33fc82b15.png)

NAT接続な環境なのでDHCPでIPアドレスを取得する設定にします。設定は/etc/rc.confというファイルに行い、以下の内容を追記します。

![img004.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/6b4ad693-e7b2-d996-a35e-d1ee562acd27.png)

### パッケージ

ユーザの追加等を行う前に、最低限必要になるパッケージをインストールします。NetBSDは最初からパッケージがわんさか入っているのではなく、ちょうどCentOSでのminimalインストールのような、最小限の配布セットのみが展開される形になっています。

#### PKG_PATHの設定

NetBSDでは、インターネット上にあるパッケージのURLを、PKG_PATH環境変数で保持しています。これは.profileに記載されているのですが、デフォルトではコメントアウト(に加え、writeパーミッションが落とされている)されているので、これを変更します。

```shell-session
# chmod +w ~/.profile
# vi ~/.profile
```

PKG_PATHの行のコメントを外し、ログアウト→もう一度ログインすると、PKG_PATH環境変数が設定されています。

![img006.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/e283ce31-c094-1187-50fd-b1c0c1fec7e7.png)

#### pkg_addでのアプリケーションインストール

パッケージをインストールする前に、ネットワークインタフェースにIPアドレスが振られていないので、今回だけは手動でDHCPによるIPアドレス取得を行います。

![img007.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/3d9b8beb-52f9-6240-822c-f1bc473b66a8.png)

パッケージはpkg_addコマンドでインストールします。まずはsudoとbash(お好みでzsh)を入れてみます。

![img008.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/5d93fc86-3127-5ecc-2856-4bf8a0aeadb7.png)

### sudoの設定

パッケージでインストールしたsudoの設定を行います。wheelグループに所属するユーザがsudoによるroot権限取得が可能になるよう設定します。

![img009.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/577c6fcb-947d-c0d9-5eae-be556c0c493e.png)

### ユーザを作成する

最後にユーザを作成します。今回はユーザtsubakiを作成してみます。sudo可能にしたいので、"-G"オプションでセカンダリグループとしてwheelを指定します。
ユーザ作成後には忘れずにパスワードを設定します。

![img010.tiff.png](https://qiita-image-store.s3.amazonaws.com/0/61137/39d4089f-b622-186a-368f-dccab584ba4f.png)

オプションの意味は以下の通りです。

 * -s <group_name> ...プライマリグループを指定する
 * -G <group_name> ...セカンダリグループを指定する
 * -m ...ホームディレクトリを作成する
 * -s <shell> ...利用するシェルを指定する

### NetBSDを再起動する

ここまででNetBSDインストール後の環境設定は完了です。再起動後、/etc/rc.conf等の設定が反映されているか確認します。

```shell-session
# shutdown -r now
```

#### ssh公開鍵を登録する

ここからはローカルマシンの端末(Terminal.app)からNetBSDにsshログインするための設定を行います。
まずはssh公開鍵を作成します。

```shell-session
$ ssh-keygen -t rsa -b 2048 -f tsubaki_key
```

作成した鍵をNetBSDにscpでコピーします。(NetBSDのsshd_configはデフォルトでPasswordAuthentication yesになっています)

```shell-session
$ scp -P 2222 tsubaki_key.pub tsubaki@localhost:~/
tsubaki_key.pub                               100%  402     0.4KB/s   00:00    
pleiades .ssh $ 
```

次に今度はsshログインして、先ほどコピーした公開鍵をauthorized_keysに登録します。

```shell-session
$ ssh -p 2222 tsubaki@localhost 
...
NetBSD 6.1.5 (GENERIC)

Welcome to NetBSD!

-bash-2.05b$ mkdir -m 700 .ssh
-bash-2.05b$ mv tsubaki_key.pub .ssh/authorized_keys
-bash-2.05b$ chmod 600 .ssh/authorized_keys 
```

これでパスワードでの認証は不要になる(残していてもセキュリティ上よくない)ので、/etc/ssh/sshd_configにPasswordAuthentication noを設定してsshdを再起動します。

```shell-session
$ sudo /etc/rc.d/sshd restart
Stopping sshd.
Starting sshd.
```

あと、毎回sshでユーザ名やポート番号を指定するのは面倒なので、~/.ssh/configに以下の内容を追加します。

```
Host kimiuso
        Hostname        127.0.0.1
        Port            2222
        User            tsubaki
        IdentityFile    ~/.ssh/tsubaki_key
```

これでssh kimiusoと入力するだけで済むようになります。

```shell-session
$ ssh kimiuso
Last login: Tue Dec  2 23:06:44 2014 from 10.0.2.2
NetBSD 6.1.5 (GENERIC)

Welcome to NetBSD!

-bash-2.05b$ 
```

これでローカルマシンの端末から仮想マシン上のNetBSDにsshログインできるようになりました。明日の記事では、この環境でのプログラミングに関するネタを書こうと思います。