2014年2月14日金曜日

バックグラウンドで ssh ポートフォワードを実行

screen + ssh ポートフォワード

ログアウト後も ssh で TCP のポートフォワードを持続させるために、screen コマンドで開いたウインドウで ssh による接続を行う。

% screen -S 文字列 -d -m ssh -g -R転送元ポート番号:転送先アドレス:転送先ポート番号 接続先アドレス

  • 転送元のマシンが、他のホストからの接続を受け付けて転送する (転送元のマシンが listen する) ためには、上記のように -g オプションを付けた上で、転送元マシンの sshd_config に "GatewayPorts yes" が必要
  • screen に "-S 文字列" オプションを付けておくと、"screen -ls" を実行した時に文字列が表示される。複数のポートフォワードを実行する時に便利。


Linux を CUIで快適に使いたい

 FreeBSD と Linux


普段は FreeBSD の tcsh を使っている。たまに Linux の bash を使うと勝手が違うことがあるので、なるべく違和感をなくすための工夫をする。
  • less の終了後に画面を消さないようにする
less -X
  • ちなみに less の検索で大文字小文字を区別しないようにするため、次の設定も行う。
less -i
  • "emacs -nw " の終了後に画面を消さないようにする
    • これは難しい。"setenv TERM vt100" としておけば画面は消えなくなるが、端末エミュレータ内でのカラー文字表示などの機能が使えなくなってしまう。いい方法はないものか。
  •  bash で CTRL-p, CTRL-n (ヒストリの検索) を有効にする
~/.inputrc に下記の2行を追加する
"\en":history-search-forward
"\ep":history-search-backward

    • ~/.inputrc  の記述は bash だけでなく、readline ライブラリを使っているほかのソフトウェアにも有効。 上記の作業で mysql コマンドでも CTRL-p, CTRL-n が効くようになった。

  • ls を実行すると文字がカラー表示になって見にくい
あらかじめ設定ファイルを作っておいて、 ログイン時に毎回 eval コマンドで有効にする。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/358dircolors.html
を参考に設定。