2005年6月17日金曜日

(QEMU)ホストOS側から、ゲストOSのFreeBSDへ、sshでログインできるようにする

Windows上で、QEMUを使って、FreeBSDを動かす話のつづきです。



今日は、ホストOSのWindows側から、ゲストOSのFreeBSDへ、sshでログインできるようにします。



QEMUで使えるネットワーク機能は、何種類かあるようですが、ここでは、「user mode network stack」を利用します。このモードは、VMWareとかが提供する機能にくらべたら、かなり機能が限定されているように感じられます(別のモードで、いろいろ凝ったことができるらしいけど、user modeが一番簡単に使えるので楽)。



QEMUに付属のqemu-doc.htmlの「3.7.2 Using the user mode network stack」にいろいろ書いてありますが、こんなネットワークトポロジーになっています。10.0.2.24でSamba(SMB)サーバを動かす機能があるようですが、ホストOSがLinuxのときでSambaを動かしておくこと、みたいなことが書いてあったので、使わないことにしておきます。



qemu-net



ものはいいようというか、防火壁(ファイアウォール・firewall)とはよくいったもので、ようするに、ゲストOSとホストOSの間で、自由に通信することはできません。つまり、NATとか使えないよ、ということです。



それでは、使い物にならないので、いくつかの通信手段が用意されています。その1つが、QEMUを実行するときに「-redir」オプションを指定することで、QEMUの世界の中の特定のIPアドレスの特定のポート番号を、ホストOS側から見えるようにできます。



-redirの書式はこんな感じらしいですが、

-redir [tcp|udp]:host-port:[guest-host]:guest-port

とりあえず、「-redir tcp:10022::22」と指定します。これで、ゲストOSのポート番号22へ、ホストOSのポート番号10022を通じてつながることになります。



22番は、SSHのポート番号です。



qemu-freebsd.batのQEMUを実行する行を、以下のように書き換えて、実行します。

START qemu.exe -L . -m 128 -hda freebsd.img -enable-audio -localtime -redir tcp:10022::22

■WindowsにSSH2クライアント「PuTTY」をインストールする



ここからPuTTYをダウンロードします。



PuTTY で ISO 2022 による日本語入力・表示を可能にするパッチ



接続先は、-redirでひっぱってきたポートになるので、ホストのIPアドレスが「127.0.0.1」で、ポート番号が10022になります。



そのほか、個人的な好みの設定を列挙しておきます。設定したら、「セッション」のところで、設定内容を保存しておきます。ここではとりあえずfreebsdという名前で保存しています。
putty01


Delキー、BackSpaceキー関係の設定は、これが好きです。
putty02



デフォルトでは文字がちいさいので、大きくします。
putty03



そのほかは、のちのち、設定していくことにします。
開くボタンをクリックすれば、SSHのセッションがはじまります。RSA鍵とかがまだ何もないので、普通のパスワード認証でログインします。
putty10


これで、Windowsから、QEMU上で動作しているFreeBSDにログインできるようになりました。



SSHクライアントとしてPuTTYを使いましたが、Cygwinのsshでもログインできますし、teratermのttsshでも、FreeBSD側でSSH1を許可するように設定変更すれば可能です。



■FreeBSD側の設定



忘れていました。普段使うユーザーから、suでrootになれるようにしておきます。
QEMUのコンソール画面から、rootでログインします(デフォルト設定では、SSHではrootでログインできなくなっている)。



/etc/groupファイルを編集します。



  • wheelグループに、普段使うユーザー(ここではnhh)を追加


  • 縁起物なのでoperatorグループにも、同ユーザーを追加




こんな感じです。

# $FreeBSD: src/etc/group,v 1.31 2004/06/23 01:32:28 mlaier Exp $
#
wheel:*:0:root,nhh
daemon:*:1:
kmem:*:2:
sys:*:3:
tty:*:4:
operator:*:5:root,nhh
mail:*:6:
bin:*:7:
news:*:8:
以下略

operatorグループに入っているユーザーは、shutdown -p nowが実行できるようになります。



sshでログインし、suできることを確認します。

> su
Password:
freebsd#

さあ、とりあえずこれで、QEMUのコンソールウィンドウがなくても、FreeBSD上の作業ができるようになりました。あと、日本語のとおるPuTTYなら、日本語もちゃんと読み書きできます。



putty11



さて、今日は木曜日で忙しいのでここまで。



■今後の予定
今思いついたのは、こんなところです。突然、気が変わる可能性もありますが・・・



  • FreeBSD側から、インターネットにアクセスして、FreeBSDのパッケージをインストールできるようにする


  • FreeBSDにApache+WebDAVを動かして、Windowsとの間でファイル交換ができるようにする




1 件のコメント:

  1. このブログのデザインがあんまりよくなくて、横幅が足りなく、文章が、よみづらいですね。
    Mozilla Firefoxの場合、[表示]メニューの[スタイルシート]で、[スタイルシートを使用しない]を選択しておくと、けっこうよくなります。
    図版も、拡大表示されて、いいかんじ。

    返信削除