2009/09/02(水)SSHの自動再接続

SSHの自動再接続のメモ


かなり用途限定なので、個人的メモとして。一応前提条件があって以下の通り。
  1. LAN内にサーバーが置いてあって、外部に公開しない。
  2. でもたまに外からメンテナンスしたい。
  3. サーバーといっても常時起動されているわけではなく、アドレスもDHCPで取得。
  4. USB-HDDだったりするので、物理的にあちこち移動して起動される。
こんなサーバーなので、サーバー自身でLANの外側へSSHコネクションを張ってもらい、それをたどって外側からLAN内のサーバーにアクセスするようにする。当然外側にはSSHを受けるマシンが必要となる。



自動再接続と言ってるが、これを自動接続と再接続で分けて考える。

まずは自動接続の部分。
接続時にパスワードを要求されるといろいろ面倒なので、最初はその辺りの設定から。
参考
sshでパスワードなしにログインするには
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/447nonpassh.html
この辺を参考に、よく設定し忘れるのはchmodなので注意。googleでssh パスワードなしとかで検索するとこれでもか、ってぐらい出てくるので適当にいくつか見ておけば問題ないと思う。


次に、起動時のsshの実行だが、これは起動時に実行すればいいので、/etc/rc.localに書く。今回のサーバーはUbuntuデスクトップなので、システム>設定>セッション、に記載。
参考
システム起動時に SSH トンネルを掘らせる
http://d.hatena.ne.jp/kamicup/20090619/1245405583
fとNオプションは使ったことなかったのでmanを見ると、backgroundで実行するのと、コマンドを実行させないようにするためのものらしい。ちなみにpでポートを80に指定しているのは、LAN内から外部に出るとき22が宛先だと出れない設定にしてあるから、という個人的事情な追加設定。これでnblog.jpマシンからlocalhostの10022にsshでアクセスするとLAN内のサーバーに接続される。
/usr/bin/ssh -f -N -p80 username@nblog.jp -R 10022:localhost:22


次に再接続の部分。
同じようなことを考える人はいるもので、いろいろスクリプトを書いてる人がいて苦労しそうかなと思いきや、今はautosshというコマンドで一発解決。使い方は単純でsshを単にautosshに置き換えるだけ。というわけで以下のコマンドを起動時に実行するように設定。
/usr/bin/autossh -f -N -p80 username@nblog.jp -R 10022:localhost:22

これで、LAN内のサーバーを起動すると、起動時に外側にSSHコネクションを張るようになり、また回線が切断されても復帰時に再接続してくれる、とても便利。

2009/04/30(木)Mac miniもUbuntu9.04

Mac miniもUbuntu9.04にアップデートしました。


PowerPCな昔のMac miniで実はこのblogを支えていたりするのですが、せっかくなので9.04に上げてみました。サーバーなんだから8.04LTSでも使ってればいいのですが、ついつい遊んで上げてみた、という感じです(すでに8.10になっていた)

アップデート自体は問題なかったのですが、たまに使うvncで問題が起こりました。基本的にsshであれこれするのでvncは使わないのですが、Routerの設定を変えたりファームウェアを更新したりするときに、vncでつないでfirefox起動して作業をします。アップデート後、一応確認のためリモートデスクトップビューアで接続して確認してみると、、、

キーボードの配列がおかしくなってました。

全部のキーを確認したわけではないのですが、アルファベット1段目の「qwer」→「c.gv」で、2段目の「asdf」→「abfh」になってました。もちろんキーボードの設定はおかしくありません。vncがメインだと困ったことになるんですが、あまり使わないのでまぁいっか、ぐらいで気楽に考えてました。もちろんsshであれこれするときは問題はありません。ちなみに8.04、8.10ではこの問題は起こりませんでした。

google先生に問い合わせしてみると、以前のバージョン(7.04)で同じようなbugがあったようです。
Scrambled Keys in feisty ubuntu desktop
https://bugs.launchpad.net/ubuntu/+source/control-center/+bug/108928
読んでいくとxmodmapがおかしいだのなんだの出てますが、結局のところ自分の使っていたtightvncがおかしいようで、他のvncserverにしたら治りました。

2009/04/26(日)名前解決

職場でWindowsまみれのLAN内に簡易サーバーを立てたりすることがあったのでメモです。


Windows機からサーバー機(Ubuntu)を見つけたい場合、IPアドレス直打ちは当然OKなのですが、そうじゃないときもあると思います。例えばサーバー名がhogehogeの場合、以下のようにアクセスしてもらいたい場合などです。
http://hogehoge/
こんなときはsambaをインストールします。共有するわけではないのでsambaの設定は特に必要なく、nmbdが起動してればそれでかまいません。これでhttp://hogehoge/でサーバー機にアクセスできるようになります。


逆にサーバー機からWindows機を見たい場合(あんまりなさそうですが)、winbindをインストールします。
winbind - Windows NT server ユーザ・グループ情報取得サービス
説明にはこんな書かれてます。インストールすると、/etc/nsswitch.conf という設定ファイルが作られるのでこれを編集します。
hosts: files wins (以下いろいろ
この設定は名前解決の順番になりますが、filesは/etc/hosts ですので、これで解決しなかったらwinsでがんばってみるという設定です。この辺りは使用する環境に合わせて変えていけばいいと思います。

2009/04/26(日)X200sにもUbuntu9.04

T60pに続き、モバイル用で使っているThinkPad X200sもUbuntu9.04にアップデートしてみました。


こちらは64bit版でしたがまったく問題なくアップデート完了。今のところ普通に稼働しているっぽいです。ブログのネタにならないぐらい簡単で拍子抜けしました。無線接続時の表示が半透明になってたりして、見た目もGOODです。

ということで、本当にWindowsを使う機会が減ってきてます。Officeも自分完結するときはOpenOfficeも使ってるしなあ。そういえば9.04からOpenOfficeが3.0に上がってました(以前は2.4)