Sunday, September 15, 2013

tramp の設定つづき

忘れそうなのでまとめ。しかしまだいろいろと自分のネットワーク設定が解決してない

・ssh の速度

・接続される側の /etc/sshd_config
サーバ側の /etc/ssh/sshd_config を確認してもしDNSでリゾルブすることのできないホストを使っているなら UseDNS no を指定する

VPN 経由の通信の場合、MTUが1500になっていると多分大きすぎる?
mssfix, fragment あたりのオプションが必要か?
とりあえず適当に fragment 1280, mssfix としたら安定した(テストケース、ssh でログインして dmesg をながすと代替最大サイズのフラグメントをながそうとして消えてなくなるようだ)。
path mtu discovery がどっかの時点で失敗してるっぽい。


・接続する側の ~/.ssh/config

ssh のコネクションが死んだ時に tramp は検出できないので、ssh側で keepalive の頻度を上げる。

ServerAliveInterval 3
ServerAliveCountMax 3

/ssh: だと特にコネクションの再利用とかしてくれないので自動でコネクションの再利用をして、バックグラウンドで生き残るようにする

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


・tramp の設定

/ssh: hostname:/path でファイルが開ける

/sudo:root@hostname:/で一般ユーザ権限でログインして、root権限でファイルが開けるように .emacs に設定した。

(add-to-list 'tramp-default-proxies-alist
    '("\\.local\\'" "\\`root\\'" "/ssh:%h:"))



・vcの設定

vc-handled-backends CVS Git のみにしてみた。RCSとかインストールしなくてすむように。

git の設定がなんかたりないきがする。RCS はもう使わないでしょう。

・リモート側の .bashrc

プロンプトがファンシーだといろいろとめんどうなのでシンプルにするために、.bashrcの頭に追加してみた。

if [ "$TERM" == 'dumb' -o "$EMACS" == 't' ]; then
  return
fi

これでもなんか安定しないケースがある気がしたのでraspberrypi から .bashrc を消した。
raspbianの標準の.bashrcは.bash_profileでやるべき設定をやりすぎている気がする。


・shell-mode の設定
shell-mode-hookでPS1を設定するコマンドを送信するようにする

(defun dancer-set-prompt ()
  (insert "PS1='\\w\\$ '\n")
  (comint-send-input))
(add-hook 'shell-mode-hook 'dancer-set-prompt)

・リモート側のemacsclient の設定

未解決



No comments:

Post a Comment