月別アーカイブ: 2012年11月

NetBSD-6.0 on Hyper-V

NetBSD-6.0 がリリースされたので、 Hyper-V のゲストとしてインストールしてみた。

boot 時のオプションで SMP と ACPI を無効にしないとネットワークドライバ tlp(4) が機能しないのは 5.x までの時と同じ。

でも、 ACPI を無効にするとリブートが途中で止まって再起動できない。ACPI が有効だと再起動できる。

5.x のときは ACPI 無効でも再起動できたんだが、これだとちょっと使えないなぁ。

PuTTY と X

タイトルには PuTTY って書いたけど、実は PuTTY はそれほど関係ない。SSH ネタ。NetBSD 限定かも。

Windows 上で動く X サーバでリモートの NetBSD の X クライアント(たとえば xterm)を動かすとする。

やり方は複数あるけど、今やっている方法は、 X サーバの方で接続はローカルからのみ受け付けるように設定。

そして PuTTY の方で X11 フォワ-デングを有効にする設定をしておく。リモート X11 認証プロトコルは MIT-Magic-Cookie-1 だ。

putty.exe からリモートの xterm を起動しようとすると、不要な putty.exe のウィンドウが Window 上に現れるので、plink.exe を使う。下のような VB スクリプトを作っておくと、アイコンをダブルクリックするだけで リモートの xterm が起動する。余計なウィンドウは現れない。もちろん、事前に X サーバは実行しておく。ここで “apricot” というのは PuTTY に登録したセッションの名前だ。

Set sh = CreateObject("WScript.Shell")
sh.Run "plink apricot xterm",0,False

ここからが本題。

起動した xterm から、さらに別のマシンの xterm を実行しようとするとエラーになる。

apricot$ ssh -f blackberry xterm
Warning: No xauth data; using fake authentication data for X11 forwarding.
PuTTY X11 proxy: MIT-MAGIC-COOKIE-1 data did not match

原因は見ての通り、xauth のデータがうまく設定されていないこと。

apricot$ ssh -v -X blackberry xterm
(略)
debug1: No xauth program.
Warning: No xauth data; using fake authentication data for X11 forwarding.
(略)

? いやいやいや、sshd_config でちゃんと xauth のパス設定してるし。ほら、

(略)
# If you use xorg from pkgsrc then uncomment the following line.
XAuthLocation /usr/pkg/bin/xauth
(略)

とこれまで思ってたのだけれど、実は ssh クライアント(ここでは apricot)の方の ssh_config でも xauth の設定をしないといけないということだった。なんだってー。

つまり、

  1. apricot で実行する ssh がローカルの xauth を使って X11 の認証情報(MIT Magic Cookie)を読み取る
  2. apricot から blackberry へ X11 認証情報を送信する
  3. blackberry の sshd が X11 認証情報を xauth を使ってローカルファイルに格納する
  4. blackberry の xterm がローカルファイルの X11 認証情報を読み取る

という流れ。

sshd_config の設定は 3 のためのもので、 1 が正しく実行されるために ssh_config の設定も必要ということ。

xauth のパスが SSH のデフォルトと一致していたらこんな問題に当たらないので、関係するのは NetBSD で X を pkgsrc で入れてる人くらいかな?