ようこそゲストさん

Kerosoft : Modus Operandi

2009/05/22(Fri) Sleipnir2の検索バーにALCを追加する方法

はてブ情報 はてブに登録 はてブ数 2009/05/22 1:50 Software::Windows
英和・和英のオンライン辞書で一番便利なところはどこか、と聞かれれば間違いなく地球人ネットワークを創るアルク:スペースアルクだと思う。若干、地球人ネットワークって何よ?、と突っ込みたいところではあるが。
が、ここのページにブックマークから開き、入力して、検索ボタンを押すまでの一連の動作が既に面倒。というわけで、Sleipnirの検索バーに統合してみました。

設定方法

[ツール]-[Sleipnirオプション]と開き、[検索]→[検索エンジンリスト]を開く。
次に、[新規]ボタンをクリックし、以下のように設定。
名前: ALC
リクエスト: http://eow.alc.co.jp/{all}/UTF-8/
ショートカット: x



ショートカットの部分はお好みでよい。
何に影響するのかというと、検索バーの入力欄でつかう接頭語の設定で、例えばショートカットをxに設定しておくと、デフォルトの検索エンジンがGoogleであっても、"x computer"のようにショートカットに続けて書くと、検索エンジンが自動的に切り替わる。


自分は設定していないが、アイコン欄を設定するとボタンアイコンとして反映される。
これをダウンロードして、\Sleipnir\resources\skins\default\toolbar\SearchBarに入れて、ファイル名を書けば良い。


ここもお好みだが、ボタンとして表示したければ、ここで設定する。ボタンを表示せずにショートカットのみを使うことも可能。



▼最終的な利用イメージ



便利、便利♪
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクはてブしていただけると助かります…。 コメントも歓迎です。

1: smappies 2010年05月20日(Thu) 午後4時58分

all/UTF-8/ があると、なんか上手くいかんかった。
検索ワードが
all/UTF-8/word になった

2: Keroberos 2010年05月26日(Wed) 午前4時58分

allは{all}の間違いだったので修正しました。


名前:  非公開コメント   

  • TB-URL  http://mo.kerosoft.com/0122/tb/

2009/05/22(Fri) 2段ssh

はてブ情報 はてブに登録 はてブ数 2009/05/22 1:28 Software::Linux
最近ではネットワークの隠蔽性を高めるため、インターネットから直接リーチャブルでない(到達できない)場所にSSHサーバーがいることもある。
ここに対してsshセッションを外側張りたい場合、基本的には、インターネットからリーチャブルなゲートウェイの働きをするsshdを通して、その中でさらにssh、つまり2段sshをやるわけだが、sshコマンドを2回も打つのがめんどくさい。どうにか1コマンドで済まないものか。

ssh hostname [command]

ご存じない人もいるかも知れないが、sshコマンドには、ホスト名の後にコマンドを指定すると、ログインした後対話シェルに入らず、コマンドの結果だけを表示して終了する仕様である。
manを引くと
NAME
     ssh - OpenSSH SSH client (remote login program)

SYNOPSIS
     ssh [-1246AaCfgKkMNnqsTtVvXxY] [-b bind_address] [-c cipher_spec] [-D  [bind_address:]port] [-e escape_char] [-F configfile]         [-i identity_file] [-L  [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]         [-R  [bind_address:]port:host:hostport] [-S ctl_path] [-w local_tun[:remote_tun]] [user@]hostname [command]
というように、最後にcommandがoptionalながら指定できる。
例えば、$ ssh username@example.com cat /proc/cpuinfoのようにうつと、リモートのCPUの情報が表示された後、現在のシェルに戻ってくる。

では単純に…??

例として、
gateway.example.com
インターネットから自由にアクセスできるゲートウェイサーバー
remote.example.com
NATの内側にいる目的のリモートサーバー
そして、これら2つのサーバーは信頼できるものであり、localhost -> gatewayと、gateway -> remoteの間はパスフレーズなしのssh鍵認証設定がされているものとする。


では単純に$ ssh gateway.example.com ssh remote.example.comとすればよいかというと、これがそううまくはいかない。
何故なら、先ほど説明したように、$ ssh hostname [command]の形式は対話シェルを原則許可していないからである。
このようなコマンドを打った場合、次のように表示されて、プロンプトは現れない。
$ ssh gateway.example.com ssh remote.example.com
Pseudo-terminal will not be allocated because stdin is not a terminal.

解決策

sshのオプションにある-tオプションを用いる。manをみると、
-t

Force pseudo-tty allocation.  This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services.  Multiple -t options force tty allocation, even if ssh has no local tty.
'pseudo'(シュード)というのは、見せかけの/擬似的という意味で、execute screen-based programs on a remote machine、つまり、シェルのようなスクリーンを占有するアプリケーションを起動できるようになるというわけである。


つまり、$ ssh -t gateway.example.com ssh remote.example.comとすればよい。
毎度打つのは面倒なので、シェルスクリプトにしてもよいし、もっと横着したければ私のように.bashrcにaliasを書いてもよい。
$ echo alias remote=\'ssh -t gateway.example.com ssh remote.example.com\' >> ~/.bashrc
$ source ~/.bashrc
繋ぎに行きたいときは、
[user@local]$ remote
[user@remote]$ 
こんな感じ。

応用例

もちろん、これを応用して$ ssh -t gateway1 ssh -t gateway2 ssh remoteのようにすれば、何段でもsshを跨げるだろう。
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクはてブしていただけると助かります…。 コメントも歓迎です。

名前:  非公開コメント   

  • TB-URL  http://mo.kerosoft.com/0121/tb/