在流浪汉上大忙:重新使用ssh连接

时间:2019-05-13 04:22:12

标签: emacs tramp magit

magit似乎为每个命令打开了一个新的ssh连接。尤其是在分段存储更多块时,这变得非常烦人,这需要花费大量时间来建立每个块的连接。

(从shell中,我通过./ssh/config启用了持久的ssh连接)

我不确定这是恶魔还是流浪汉。

但是我的问题是:

如何使magit重新使用ssh-connection?

编辑:

客户是

  • 流浪汉2.3.5.26.2
  • GNU Emacs 26.1.91
  • debian(测试中)
  • 这是流浪汉配置
    (add-to-list 'tramp-remote-path 'tramp-own-remote-path)
    (setq tramp-default-method "ssh")
    (setq tramp-inline-compress-start-size 1000000)
  • 这是我的.ssh / config的相关部分
  ## 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)

1 个答案:

答案 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