MacOS – ssh command crashes after key exchange

dynamic librarymacossshterminal

Had this strange issue crop up today that I haven't experienced before. I execute ssh <remote ip> and ssh crashes with the following exception:

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

I have run the command with the verbose flag and can see this is happening directly after the key exchange between the local machine and remote host.

Things I have tried:

  • Restarting terminal
  • Restarting machine
  • Removing all ssh programs in /usr/bin and replacing them with those of a colleagues mac
  • Booting to recovery mode and replacing libSystem.B.dylib with the one that ships with macOS
  • Installing openssh with homebrew
  • Removing openssh
  • Adding a PATH to /usr/bin

Note the same error appears on other commands such as scp.

Best Answer

Assuming that you're (probably) using homebrew's ssh, I found this reported bug in the openssh formula, which apparently can be fixed by upgrading macOS to 10.12.3:

Right, that symbol wasn't in 10.12.0, […] You can fix it by building from source or by upgrading to 10.12.3.