ssh无法正常工作,muxserver_listen bind():没有这样的文件或目录

llo*_*ono 12 git macos ssh terminal

今天在我的新工作笔记本电脑上我根本无法使用ssh(ssh到服务器,bitbucket等不工作),它失败了,出现以下错误:

致命:无法从远程存储库读取.请确保您具有正确的访问权限并且存储库存在.

所以我开始调试,这是ssh -Tv git@bitbucket.org的输出:

debug1: Authentication succeeded (publickey).
Authenticated to bitbucket.org ([131.103.20.168]:22).
debug1: setting up multiplex master socket
muxserver_listen bind(): No such file or directory
Run Code Online (Sandbox Code Playgroud)

不知道出了什么问题,我多次使用ssh并且从未遇到过这个问题.我顺便使用osx.

这个问题已被关闭,但在我看来,SSH是日常开发中使用的工具,请考虑重新打开它

llo*_*ono 28

在尝试了很多不同的东西之后我发现我丢失了这个文件夹〜/ tmp,我在这里检查后意识到这一点:/ private/etc/ssh_config.我找到了这一行:

StrictHostKeyChecking no
    ControlMaster auto
    ControlPath ~/tmp/ssh-mux-%h-%p-%r #THIS WAS THE PROBLEM
Run Code Online (Sandbox Code Playgroud)

之后:

mkdir ~/tmp 
Run Code Online (Sandbox Code Playgroud)

一切都有效.

我想回答我自己的问题,因为我花了一些时间才发现这个问题.

  • 当“%C”(哈希)可用时,我个人更喜欢“ControlPath ~/.ssh/.control-%C”,否则更喜欢“ControlPath ~/.ssh/.control-%h:%p:%r”。这是一个安全且偏僻的地方(`~/.ssh` 必须具有严格的权限,必须存在才能使 SSH 工作,并且 SSH 无论如何都会为您创建它)。将它们作为点文件使它们在运行例如“ls ~/.ssh”时不引人注目。 (2认同)
  • 我正在使用带有连接共享的ssh获得类似的消息.只是为了清除任何混淆,这个目录(在我的情况下是`〜/ .ssh/sockets /`)需要存在于你正在从*进行sshing*的机器上.我在目标计算机上创建了它,但没有解决问题. (2认同)