Lion + VirtualBox + CentOSでSSH接続

今日も一日パソコンの前で過ごしてしまいましたが、徐々に環境が整いつつあります。
忘れないうちに記録。同じようなところで躓いた人のヒントになれれば幸いです。
なお本記事中で用いる各ソフトウェアのバージョンはすべて現時点で一番新しいものを使っています

VirtualBoxCentOSのインストール

VirtualBox(以下VB)に関してはセットアップに従うだけなので割愛します。
VB上で動作させるOSですが、今回はCentOSにしようと思います。
Debian系ならばubuntuなどが良いのではないでしょうか。

ただし今回はサーバーとして動作してくれれば良いので綺麗なGUIなどは不要ですし、
パッケージ群も必要最低限用意されていればよいでしょう。
僕はCentOS-6.2-x86_64-minimal.isoを使いました。

VBへのOSイメージのインストールも、
基本的にはセットアップに従うだけなので割愛します。

VirtualBoxCentOSの設定

今回やりたいことは以下の2つ

  • CentOSへMacからSSH接続を行い基本的にMac側で操作する
  • CentOSはインターネットに接続する必要がある(各種ソフトウェアのインストールのため)

VirtualBoxでは仮想的に生成した複数のネットワークアダプタを使用することができます。
上の二項目を満たすために、今回はNATとホストオンリーアダプタの2つを使う。

すなわちホストオンリーアダプタを使うことで、
IPアドレスを指定してゲストOSにアクセスすることが可能となり(SSH)、
NATを用いることでインターネットへのアクセスを可能としています。

NAT側ではDHCPでホストOSからアドレスを発行してもらうので、
基本的にIPを指定してのゲストOSへのアクセスは難しくなります。
(試してみましたが断念しました。できるのかな?)

前置きが長くなりましたが具体的な設定項目を挙げておきましょう。

まずはVB側でのゲストOSの設定として、adapter1にNAT、adapter2にHost-only Adapterを設定します。
そしてVB自体の設定として、ネットワークタブから、ホストオンリーネットワークを追加しておいてください。
さらにここで追加したネットワークアダプタのIPアドレスも調べておきます。
デフォルトでは192.168.56.1だと思いますが念のため

次にゲストOS上で以下の2つのファイルを編集します。

念のため補足しておきますが、一行目の# vi /etc/sysconfig(以下略) はroot権限で実行しており#はrootのプロンプトを表します

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT="yes"
BOOTPROTO="dhcp"
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
BOOTPROTO="static"
HWADDR=12:34:56:78:9a:bc (←環境により値は異なります)
ONBOOT="yes"
IPADDR=192.168.56.101
NETMASK=255.255.255.0
NETWORK=192.168.56.0

eth1の方のIPADDRは適当な値で構いませんが、
これを使ってゲストOSにアクセスするのでわかりやすい値がよいでしょう。
一方、NETWORKとNETMASKにはホストOSが存在するネットワークを指定しなければいけません。
詳しくは「IPアドレス ブロードキャスト」などでググってみると良いでしょう

ファイル編集後、設定を反映させるためにネットワークインタフェースを再起動します。
よくわからない方は、ゲストOS自体を再起動させてください。
(ぼくもコマンド忘れたのでOS自体を再起動させました)

iptablesの設定

さて、これまでの設定で一応ゲストーホスト間でのネットワークは接続されました。
しかしこのままではファイアウォールが働いており、ゲストOSにアクセスできません。
ファイアウォールの設定は以下で詳しく紹介されています。(人任せですいません

http://d.hatena.ne.jp/p4life/20090413/1239624784

ユーザーの作成

あともう少しです。がんばります。
SSHが使えるようになっても、ユーザーが作成されていないとログインできません。
(もしかしたらrootでログインできたかも。試していませんでした。)

ゲストOS、root権限で、以下のコマンドを実行します

# useradd ●●●●
#passwd ●●●●

passwd ●●●●を実行するとパスワード入力が求められますので、
設定したいパスワードを入力してください。(確認のため二度入力が必要になります)

SSHで接続確認

最後に接続を確認します。
ホストOSにて、さきほど作成したユーザーでSSHしてみます。

$ ssh ●●●●@192.168.56.1

もちろん●●●●には先程のユーザー名を、@以下にはもちろん、ゲストOSのアドレスを入力します。


次回はapacheを使ってゲストOS上にサーバーを立ててみます