Why Do I Still See `sshpass` Errors on macOS?

This is one of the most common macOS control-host pitfalls. The issue is usually not that dbbot forgot to document it, but that macOS and Linux intentionally use different sshpass handling paths.

Two facts to check first:

  1. The bundled sshpass-x64 in dbbot is for Linux x86_64 only and is not reused directly on macOS.
  2. If your inventory uses ansible_ssh_pass, Ansible still needs a working local sshpass; otherwise you will see errors such as sshpass not found or to use the 'ssh' connection type with passwords, you must install the sshpass program.

Recommended handling:

  1. Prefer SSH key authentication on macOS control hosts whenever possible.
  2. If password-based SSH is still required, install Homebrew first, then run:
brew install hudochenkov/sshpass/sshpass
  1. After installation, rerun:
/usr/local/dbbot/bin/dbbotctl doctor

If the error persists, check these two cases next:

  1. Host Key checking is enabled: this is a host-key trust problem, not something sshpass can bypass. Confirm the fingerprint once with ssh <user>@<host>, or switch to SSH keys.
  2. password_hash / passlib related errors: this means the macOS control host is still missing passlib. Run xcode-select --install, then rerun dbbotctl env setup.

Related docs: