密钥交换后 ssh 命令崩溃

密钥交换后 ssh 命令崩溃

今天出现了一个我以前从未遇到过的奇怪问题。我执行后ssh <remote ip>ssh 崩溃,并出现以下异常:

dyld: lazy symbol binding failed: Symbol not found: _timingsafe_bcmp
  Referenced from: /usr/local/bin/ssh
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _timingsafe_bcmp
  Referenced from: /usr/local/bin/ssh
  Expected in: /usr/lib/libSystem.B.dylib

Abort trap: 6

我已经使用详细标志运行了该命令,并且可以看到这是在本地计算机和远程主机之间的密钥交换之后直接发生的。

我尝试过的事情:

  • 重启终端
  • 重启机器
  • 删除 /usr/bin 中的所有 ssh 程序,并将其替换为同事 mac 的程序
  • 启动到恢复模式并将 libSystem.B.dylib 替换为 macOS 附带的 libSystem.B.dylib
  • 使用 homebrew 安装 openssh
  • 删除 openssh
  • 将 PATH 添加到 /usr/bin

请注意,其他命令(如)也会出现同样的错误scp

答案1

Federico 链接了 github.com/Homebrew/homebrew-dupes/issues/716,这表明这可能是 macOS 的一个错误

就像那篇文章的原作者一样,我之前使用的是 10.12.0,刚刚更新到 10.12.3。它解决了这个问题。

相关内容