magit似乎为每个命令打开了一个新的ssh连接。尤其是在分段存储更多块时,这变得非常烦人,这需要花费大量时间来建立每个块的连接。
(从shell中,我通过./ssh/config启用了持久的ssh连接)
我不确定这是恶魔还是流浪汉。
但是我的问题是:
如何使magit重新使用ssh-connection?
编辑:
客户是
(add-to-list 'tramp-remote-path 'tramp-own-remote-path)
(setq tramp-default-method "ssh")
(setq tramp-inline-compress-start-size 1000000)
## generally re-use existing connections
Host *
ControlMaster auto
ControlPath ~/.ssh/sockets/%r@%h-%p
ControlPersist 600
Host myhost1
HostName 111.11.11.1
User myuser
ForwardX11 yes
ForwardX11Timeout 596h
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
ForwardAgent yes
SendEnv LC_*
ServerAliveInterval 300
服务器为RHEL 7.6(Maipo)
答案 0 :(得分:2)
默认情况下,Tramp不使用SSH配置文件(see the Tramp FAQ)中定义的ControlMaster选项:
在启动ssh会话时,Tramp会覆盖ControlPath设置。 如果主会话在外面打开,流浪汉会这样做以防堵 Emacs会话不再打开。
常见问题解答还显示了如何为TRAMP配置ControlMaster选项:
context.request().resume()
或者,如果要告诉Tramp使用(customize-set-variable
'tramp-ssh-controlmaster-options
(concat
"-o ControlPath=/tmp/ssh-ControlPath-%%r@%%h:%%p "
"-o ControlMaster=auto -o ControlPersist=yes"))
文件中的自定义设置,则需要更改~/.ssh/config
变量:
tramp-use-ssh-controlmaster-options