5

我使用 bitbucket 来托管一些 git 存储库。

当我尝试这样做时:

git pull && git push

我得到:

mux_client_request_session: session request failed: Session open refused by peer
ControlSocket /home/ravi/.ssh/sockets/socket-git@bitbucket.org:22 already exists, disabling multiplexing
4

2 回答 2

9

bitbucket.org 已故意禁用 ssh 多路复用,因此请编辑您的~.ssh/config文件,以便 ssh 在连接时不会尝试多路复用。

如果您有ControlMaster顶级配置,请确保将其删除,因为它取代了任何Host部分配置。

然后加:

Host bitbucket.???  # .org and .com
  ControlMaster no

Host *
  ControlMaster auto
  ControlPersist yes
  ControlPath ~/.ssh/socket-%r@%h:%p

注意Host bitbucket.org一定要来之前Host *

此外,ControlPath应该只能由您自己写入。

然后,如果ControlSocket错误消息中的名称仍然存在,请将其删除。(它将根据ControlPersist.

于 2018-09-25T10:29:47.100 回答
1

另一种方法是在本地 repo 配置中更改 git ssh 命令并禁用多路复用模式。

git config --local core.sshCommand "ssh -o ControlPath=none"
于 2020-06-23T07:10:14.383 回答