Friday, September 27, 2013

ssh のクライアント側の設定メモ


手元のssh 関連の設定をまとめてみた。


・ControlMasterで接続を再利用すると高速になるので便利。
手元ではこんな設定にしている。

ControlMaster auto
ControlPersist 120
ControlPath ~/tmp/ssh-%r@%h:%p


ControlPersistとすると、ssh が親プロセスが1のdaemon プロセスになってくれてコネクションを張りっぱなしにしてくれる。

デフォルトで設定されているとマニュアルには書いてあるんだけど、手元ではControlPath指定しないと動かなかった。なんでだろう。
ホームディレクトリ以下の tmp にしているのはファイル名の衝突について心配しなくてよいように。

ControlMasterをAutoにしておくとすでにコネクションが開いていない場合はデーモンをたちあげてもしコネクションが開いている場合にはそれを利用するように。


・コネクション Keep-Alive 関連の設定

試行錯誤しているんだけどこれくらいがいいのかな。
ServerAliveInterval 3
ServerAliveCountMax 5

・パソコンがsleep から復活した時に再接続する設定
大抵ネットワーク接続の構成が変わったらssh のコネクションは終了して再接続するべき、だと思うんだけどまだそういう設定ができる方法は発見しておらず。
dbusのイベントとかでおしえてくれないんだろうか。


・ホスト名を適当につける
DNSの登録設定とか面倒なのでsshでしか使えないホスト名みたいなものが作れる。ssh経由でつながるtrampとかではつかえるので便利。bash のsshのコマンドライン補完でも使えるし。

・*.local用の設定
Mac のRendezvousとかLinuxのAvahiとか設定しているとホスト名.local という名前で名前解決ができるようになるけどIPアドレスは毎回変わるのでホストIPをチェックしないようにする。

Host *.local
  CheckHostIP no




あとついでに公開鍵認証にしておくとよさげ。

Host raspberrypi.vpn
  Hostname そのホストのIPアドレス
  IdentityFile ~/.ssh/ssh-keygenで作ったファイルのパス
  IdentitiesOnly yes


No comments:

Post a Comment