とりあえずメモ
Mouse・Keyboard共有ツールSynergyは、クリップボードのない用も共有してくれる便利なツールですが、基本的にそのデータは生のままネットワークを流れます。これって自宅の場合はいいけど会社とかのネットワークだとちょっと気持ち悪い。外に繋がった場所ならやばいです。
これに対して、Synergyのページでは、「SSHでトンネルすればいいじゃなーい」みたいに書いてあったのでやってみました。
使用環境は、サーバ、クライアントともにWindows(2000/XP)です。
synergy 1.2.6 と cygwin ssh を使いました。また、sshクライアントのWindowsサービス化でcygrunsrvではうまく設定できなかったのでここのsexeというツールを使いましたが、cygrunsrv でアカウントを自分に変更してやれば大丈夫かもと今気がつきました(^_^; ま、いいか
基本的な手順は、
(0)前準備としてsshなしでsynergyが使えることを確認しておきます。ここでは設定が済んでいるものとします。
※synergyとsshのサーバになるPCを"serverPC"、サーバ上のアカウントを"userName"、使用する鍵をPublicKey.id_rsaとします。
(1)サーバになるPCに sshd サービスを走らせる
こことかこことかここを参考にしました。
(2)クライアントになるPCからsshで公開鍵でアクセスできるようにする。
パスフレーズはなし。アカウントは後にサービスで起動させるアカウントにしないと(yes/no)の確認で止ってしまうっぽいので注意です。
(3’)クライアントPC用の起動バッチファイル。※Cynwinにパスが通っていること
c:\wintool\cygwin\bin\ssh.exe -f -N -L 24800:serverPC:24800 serverPC -l userName -i PublicKey.id_rsa
みたいな感じでバッチファイルを書くととりあえずいけます。
(3)サービス
sexe というツールを使うまたはcygwinのcygrunsrv を使ってsshをWindowsサービスとして登録します。
起動バッチと同じコマンドを登録すればいいですが "-f" オプションがあると終わってくれないのではずします。っていうかバッチでも要らないかも。
必要なときのみ接続したい向きにはバッチファイルで十分ですが、DOS窓が残るのが少々鬱陶しいです。
(4)クライアントの設定
ここまでで、ssh経由でsynergyを繋ぐ準備が出来たので、クライアントの接続先をserverPCからlocalhostに変えます。トンネルがちゃんとできていればタスクトレイのアイコンが変わるのでちゃんと動くか試してみましょう。
synergyとsshどちらも自動起動になっていればsshのトンネルを使ってることを意識せずにマウス・キーボードの共有が出来ます。