Windowsでrsync over sshでパスフレーズレス接続

前回、Windows版rsyncのcwrsyncを紹介したが、この際是非パスフレーズレスで使いたくなった。

sshでパスフレーズレス接続するには、ssh-keygenで公開鍵と秘密鍵のペアを作って、認証対象サーバの~/.ssh/authorized_keysに公開鍵をつっこんでおき、認証の際に秘密鍵を使ってログインインする。
超簡単にやり方を書いておこう。

サーバ上で鍵を生成。
~$ ssh-keygen -t RSA
公開鍵を登録。
~$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys

フロッピーなどでid_rsa(秘密鍵の方)をクライアントマシンに転送。

認証している鍵は他の人に読めないように。
~$ chmod 600 .ssh/authorized_keys
鍵を削除
~$ rm .ssh/id_rsa.*

対象サーバじゃなくてクライアント側で鍵のペア作って、サーバに公開鍵をFTPかなんかで送る方が幸せかもしれない。
まあ、どっちでもいい。
あとはWindowsの場合は、teratermなんかsshで接続するときに、その鍵を使えばパスフレーズレスで接続できるようになる。
puttyの場合はputtygenで鍵の形式を変換してやらないと使えないけど、ppk形式に変換してやれば使える。
クライアントマシン側でsshコマンドでやる場合は、-iオプションで秘密鍵を指定してやればいい。

$ eval `ssh-agent`
$ ssh-add 鍵

とかやってクライアントマシン側でssh-agentを起動して、秘密鍵を喰わせておけば指定の必要もない。(その場合は作業が終わったらeval `ssh-agent -k`をして殺しておかないと泣くことになる)
あとは~/.ssh/configをかくかんじか。

で、本題はこれじゃなくて、それをcwrsyncを使って窓マシンからlinuxサーバにrsyncするときに、パスフレーズレスにすることだ。
cwrsyncのbinフォルダをのぞくと、ssh-keygenなんかはあるけどssh-agentはない。
そこで、~/.ssh/configは使えないかと考える。

Windowsのインストールドライブ:Documents and Settingsユーザ名.ssh

をのぞいてみたらknown_hostsがある。
試しにココにconfigファイル作ってみる。

Host waterblue.net
User ユーザ名
IdentityFile 鍵ファイルのパス(C:keyid_rsaなら/cygdrive/c/key/id_rsa)
Protocol 2

で、コマンドラインからssh waterblue.netとしたら。

H:>ssh waterblue.net
Linux debian 2.6.29-1-amd64 #1 SMP Fri Apr 17 10:12:36 UTC 2009 x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have mail.
Last login: Thu Apr 30 22:59:06 2009 from xxx.xxx.xxx.xxx
~$

キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

ここでrsyncをドライランでたたいてみる。

H:>rsync -a –progress -v -n /cygdrive/f/test waterblue.net:/home/ユーザ名/rsync
sending incremental file list
test/
test/test.txt

sent 85 bytes  received 19 bytes  69.33 bytes/sec
total size is 6  speedup is 0.06 (DRY RUN)

ユーザ名もパスワードもきかれないでいけたよママン!

これで窓でも快適なrsyncライフを送ることができる!

rsyncのWindows版

rsyncについてこの間書いたが、Windows版も無いものかと思って探してみた。
あった
cwrsyncというやつ。
早速ダウンロードしてインストールしてみた。

インストール先のフォルダにbinフォルダがあり、そこの中はこんな感じ。

cwrsync

どうやらcygwinから必要なものを引っこ抜いてパッケージングしたもののようだ。

とりあえず、環境変数のPATHに「インストール先のフォルダbin」を追加する。
コマンドラインからrsync -hをたたいてみたらrsyncのヘルプがでてきた。
ssh.exeが見えたので、ためしにsshでLinuxサーバに接続してみたところ、できた。
これは、使える!

とりあえず、testフォルダとtest.txtを作成して動作実験してみる。
リモートのサーバでrsyncで同期をとるための~/rsyncディレクトリを作成、Windows側でF:testtest.txtを作成。
コマンドラインから動作テストをしてみる。

H:>rsync -a –progress -v -n /cygdrive/f/test USER@waterblue.net:/home/USER/rsync
Password:
sending incremental file list
test/
test/test.txt

sent 85 bytes  received 19 bytes  12.24 bytes/sec
total size is 6  speedup is 0.06 (DRY RUN)

いけた!
Windows側のパスの扱いは予想通りcygwinと同じ、/cygdrive/Windowsドライブ名/で参照できるようだ。

スタートメニューからcwrsyncを選択して、1. Batch exampleを選択すると、rsyncを使ってのバックアップをするためのひな形ファイルがでてくる。
ダブルクリックで一発でいけるようにしたいなら、このファイルを編集して設定をしておくといいだろう。

さて、とするとパスフレーズレスで接続できるようにしたい。
それについては次のエントリーで。

e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang

定期的にでるこのメッセージ。

e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang

はっきり言って謎に包まれていました。
っていうか今でも謎に包まれています。

以前、うちのサーバは転送量がやたらと多くて、転送量がMAXに到達するときなんかはオンボードのNICがRealtekだったせいか、CPU利用率が100%になったりしていた。
んで、まともなNIC使おうよという話になり、IntelのギガビットなNICを買ってきたわけだ。
で、さして設定して動かしてみたところ、やっぱり蟹さんより速度はでるわCPU負荷は小さいわで幸せになれた。

と思った。

しばらく使っていると、不定期に上記のメッセージがでてきて、NICに再起動がかかるのだ。
NICが再起動している間は当然通信が行えなくなる。
結局intelからソースもってきて自前でコンパイルしてモジュールの入れ替えとかやっても問題解決されず、時折再挑戦とかしてみたもののやっぱりダメで、せっかくのNICだが仕方がないと利用をあきらめていた。

で、以前のエントリで書いた「NICが死ぬ」っていうのはこのことで、とりあえずサーバ機の電源とCPUの発熱に問題があったのをなおしたので、その時に利用を復活させたわけだ。
ところがこの忌々しいメッセージは消えていなかった。
ふと思い出してある日dmesgたたいてみたらやっぱりでていた。
仕方がないから蟹に戻そうかとも考えたが、ママンとCPUの換装が控えていたので、それが終わってから様子をみて考えようということにした。

そしてそれから1日経過。
今のところ一度もTx Unit Hangは起きていない。
以前は1,2時間に1回は発生していたので、問題解消されたと見ていいと思っている。
結局問題は、おそらくマザーボードのチップセットとの相性だったんじゃなかろうか。
NICのチップは82541PI。
前のママンはM2A-VMで、チップセットがAMD 690G+ATI SB600となっている。
で、新しいママンはGA-EG31MF-S2 (rev. 2.0)、チップセットはIntel G31 + ICH7だ。

まあ解決してよかった。

ジャンボフレームを有効に

NICはIntelのものを使っており、Intelのギガビットイーサネットコントローラなんだからジャンボフレーム対応しているだろうと思って調べてみた。

  Jumbo Frames
  ------------

  The driver supports Jumbo Frames for all adapters except 82542-based
  adapters. Jumbo Frames support is enabled by changing the MTU to a value
  larger than the default of 1500. Use the ifconfig command to increase the
  MTU size. For example:

        ifconfig ethx mtu 9000 up

  The maximum MTU setting for Jumbo Frames is 16110. This value coincides
  with the maximum Jumbo Frames size of 16128.

  NOTE: For native VLANs with Jumbo Frames, you must set the MTU before
        adding the VLANID. Setting Jumbo Frames (MTU > 1500) on an adapter
        already configured for VLANs will halt all traffic on that adapter.

ということで対応しているらしい。
で、ひかりoneで貸し出されているルータがAterm BL190HWってやつで、こっちは9KBまでのジャンボフレームに対応しているらしい。
ということで設定。

まず、ルータにブラウザでアクセス。
人によって違うだろうけどまあたしかデフォルトは192.168.0.1だったような。
でまあログインして、詳細設定>その他の設定から、ジャンボフレーム透過機能にチェックいれて保存。
これでルータ側はOK。

次はNICの設定。

# ifconfig eth0 mtu 9000
とりあえずこれで通常に接続できることを確認して
# vi /etc/network/interfaces
mtuの値を書き換え

auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
mtu 9000

みたいな。

linuxのジャンボフレームの設定簡単ですね。

Windowsの場合はデバイスマネージャで使っているNIC選択して、ジャンボフレームのオプションを有効にすればいい。
場合によっては設定できなかったりするがその辺はNICとドライバ次第。

今うちのサーバで使っているCPUクーラー

以前のエントリを見ている人ならわかっいるだろうけれども忍者を使っている。
正確に言うなら NINJA PLUS。

とりあえず、知ってる人はどういうクーラーなのかわかってるけども、わかっていない人もきっと多いだろうということで、せめて外観だけでも紹介しておこうと思う。

こういう感じ。

続きを読む 今うちのサーバで使っているCPUクーラー

rsyncによるバックアップ

Linuxサーバのバックアップにはよくdumpが使われたりするけれども、それよりもrsyncの方が幸せになれると思う。
ネットワーク経由やssh経由でバックアップできるのがすばらしい。
もちろんローカルのメディアにバックアップすることも可能。
更に差分バックアップなので、時間が食われるのは最初だけ。
Heartbeatなんかを使ってレプリケーションするのも手だが、レプリケーションは個人ユースではまあ不要だろう。

続きを読む rsyncによるバックアップ

サーバ機のマザーボードとCPUを換装してみた

今までのCPUはAthlonX2だったんだけども、Core2Duoへ移り変えることに。
現在、amd64アーキテクチャを使っているわけで、これって載せ替えるだけじゃだけじゃきっとダメだよなー、と思いつつ、一応調べてみた。
するとこんなことが書いてある。

Debian 4.0 (etch) のリリースから、AMD64 は公式にサポートされる Debian アーキテクチャとなりました。

同移植版は、AMD64 拡張付きの AMD 64 ビット CPU 用および EM64T 拡張付きのすべての Intel CPU 用のカーネルと、共通の 64 ビットユーザ空間で構成されています。

http://www.debian.org/ports/amd64/

あれ。
EM64TってC2D使えるよな。
ひょっとしてママンとCPU載せ替えるだけで動いちゃったりしちゃうんじゃない?
ということでまずはくそでかいCPUクーラーのNINJA様を引っぺがすところからはじめて、まずは最小構成でBIOS起動するかとか確認しつつ、悪戦苦闘しながらも載せ替え完了。
とりあえず電源入れてみる。
おお、grub2の画面出現。
いや、まあ、まて。
これでカーネル選んだらパニック起こすんだろ?
ポチ。
mdは認識されたがfsckでこけてる。
fdiskで/dev/sdxをチェック。
HDDの割り当てが変わっていたので/etc/fstabを書き換えて再起動。

fooooooooooooooooooooooo

動いた。
とりあえず動いているように見える。
少なくとも今こうして文章かけてる時点でbindとapacheは動いてる。
ftpもOKだ。
メールもいけてる。
dmesgたたいても怪しいところはない。
debian神過ぎだろ。

ちなみに、CPUは元がAthlon 64 X2の5800+だか6000+。
で、変更したのはCore 2 Duo E6850。
大して変わらないだろとつっこみがきそうだが、発熱がえらい下がった。
今CPUファンレスで34度。
忍者さすがと言わざるを得ない。

debianで文字コードをeucからutf-8に変更

うちのサーバ機はもうwoody時代から運用されている。
その当時、日本語ロケールはja_JP.eucJPが常識だった。
sargeまではそうだったんだが、etch時代になって日本語ロケールはja_JP.UTF-8が常識に変わった。
そして今の運用状況は相変わらずsidであり、lennyやsqueezeどころかっていう世界。
ということで、超今更ながらロケールの変更に挑戦しようと思った。
なんかめんどくさそうだから後回しにしてたんだけど。

続きを読む debianで文字コードをeucからutf-8に変更

メールが飛ばない

サーバ機をうちに輸送してきたはいいが、メールが飛ばないことに気がついた。
うちではpostfixとcourierを使っているんだけども、受信はできていたのでトラブルに気づいていなかったのだが、fmlでメーリングリストも運用していて、そのメールに返信しようとしたらメールが飛ばなくなっていることに気がついた次第。

続きを読む メールが飛ばない

linuxで無線lan(挫折)

最近とっても無線Lanのアクセスポイントがほしいと思っている。
というのも、wiiがあってだな。
まあ、アダプタつければ有線でもかまわないんだが、なんかそれは負けなきがする。
あと、ノートもあってだな。

で、昨日サーバ用のLanケーブルを買いにビックカメラへ行ったわけなんだけども、そこでついでにちょろっと無線lanコーナーのぞいてみた。
11g/bとかだとUSBでつなげて親機になれるやつ結構あるけど、11nはまだないんだろうなーっておもってたんだけど、あった。
CG-WLUSB300N。
他にもあったが、これが一番安かった
コレガなのは心配だが、この値段ならあきらめもきくので、とりあえず買った。

で、問題は、自分はlinuxで無線lanなんぞ使ったことがない。
とりあえず、きっとカーネルモジュールにこいつのドライバなんて付属してないだろうと思うわけで、製品みてもサポートOSにLinuxなんて入っているわけがない。
そうなると悪戦苦闘することは目に見えていたが、まあとりあえずやってみようと。
ダメだったらノート用の11nの子機にすればいいだろうし、最悪ヤフオクでうっぱらえばいいだろう。
ということで挑戦が始まった。

続きを読む linuxで無線lan(挫折)