Linux上のmikutterでリンクをクリックしたらMac上のブラウザで表示する方法

VM上のLinuxでmikutterを動かしてたり、synergyで2台のPCを並べて使ってたりする場合に、TwitterだけLinuxのmikutterで眺めてWebはMacで見たい場合ってありませんか。僕はあります。
そんな時、SSHを使えば割と簡単に実現出来ます。

MacSSHサーバを有効化

システム環境設定→共有でリモートログインにチェック。

Linuxにmulticast DNSを設定

FedoraUbuntuのようなお手軽ディストリなら設定済みです。
GentooやArchやDebianの人はこのへんを見て設定して下さい。

ここでmulticast DNSを敢えて使用するのは、DHCPMacIPアドレスが変更されたり、VMのネットワーク設定が変わってホスト側のMacIPアドレスが変わって見えたりしたときにもIPアドレスを自動的に解決する方法として適しているからです。
必要なければIP直打ちでも以下の設定をおこなう事が出来ます。

SSH公開鍵認証を設定

Linux側でパスフレーズの無いSSH鍵を作成し、Mac側の~/.ssh/authorized_keysに追加しておいてパスワード・パスフレーズ無しでMacへログインできるようにしておきます。

Macのホスト名は各自チェックして下さい。

ssh-keygen -t dsa
scp ~/.ssh/id_dsa.pub syuu-no-MacBook-Pro.local:~/
mkdir .ssh
cat id_dsa.pub >> .ssh/authorized_keys
シェルスクリプトを作る

Linux側で以下のようなシェルスクリプトを作ります。

cat > open <<EOS
#!/bin/sh
ssh syuu-no-MacBook-Pro.local open $*
EOS
chmod +rx open

試しに叩いてブラウザが上がってくるかみてみます

~/open http://www.google.com
mikutterに設定する

設定→表示→URLを開く方法で次のコマンドを使うを選び、
/home/syuu/open
などと書き込んでおけば、次からブラウザではなくて上述のシェルスクリプトが実行されて何故かMacでブラウザが立ち上がるようになります(ホームディレクトリのパスは各自チェックして下さい)。

応用

mikutterではなくデスクトップ環境のデフォルトブラウザにopenを指定すれば別のアプリでリンクを踏んでもMacでブラウザが立ち上がります。
また、ファイルをscpしてからopenをMacで実行する所までをシェルスクリプト化すれば、コマンドラインで指定したファイルをMacで開くことが出来ます(Macのopenコマンド自体はURLを開くためのコマンドではなく、URLやファイルを引数に与えてデフォルト設定のアプリケーションで開くためのコマンドです。詳しくはmanを見てね)。

おやくそく

SSHサーバを起動したりパスフレーズなし鍵認証を設定したりとセキュリティが緩くなる方向に設定を変更してるので、ファイヤウォールで必要ないIPは弾くとかSSHの設定を厳しくするなどして穴を広げない方向でお使い下さい。