bssh 3.0 assigns seven single-letter options their OpenSSH meanings. Existing bssh automation must use long options for the displaced cluster and pdsh-style features.
This contract shipped in 3.0 and remains in effect in 3.1. The requirement to warn in a final 2.x release before reassignment is a release-history requirement: this documentation and the 3.0 implementation do not, by themselves, prove that such a warning was shipped. Release notes must not mark that requirement complete without evidence from a published 2.x release.
The transition notices in this source tree are written only when standard
error is an interactive terminal. Redirected standard error and -E logs stay
byte-transparent so automation and SSH protocol tests are not corrupted by a
human-facing migration message.
| Former bssh use | Rewrite for 3.0 | What the short flag means in 3.0 |
|---|---|---|
-N to remove node prefixes |
--no-prefix |
Do not execute a remote command |
-f PATTERN to filter hosts |
--filter PATTERN |
Go to the background after authentication |
-C CLUSTER to select a cluster |
--cluster CLUSTER |
Enable SSH compression |
-A to authenticate with the local agent |
--use-agent |
Forward the authentication agent to the remote host |
-S to prompt for a sudo password |
--sudo-password |
Set the multiplexing ControlPath; it now requires a path |
-k to stop on the first failed node |
--fail-fast |
Disable GSSAPI credential delegation |
-b to use single-stage Ctrl+C handling |
--batch |
Bind the client to a source address; it now requires an address |
For example:
# Before 3.0
bssh -C production -f 'web*' -A -S -k -b 'sudo systemctl restart nginx'
# 3.0
bssh --cluster production --filter 'web*' --use-agent \
--sudo-password --fail-fast --batch 'sudo systemctl restart nginx'The authentication meanings of -A and --use-agent are deliberately
different. --use-agent lets bssh use a local agent to authenticate the
connection. OpenSSH-compatible -A makes that agent available to processes on
the remote host, which expands the trust boundary and should be enabled only
when needed.
Use -N for a forwarding-only connection:
bssh -N -L 8080:internal.example.com:80 user@gateway.example.comUse -S to select a connection-sharing socket:
bssh -M -S ~/.ssh/bssh-%C user@host
bssh -S ~/.ssh/bssh-%C user@host uptime
bssh -O proxy -S ~/.ssh/bssh-%C user@host uptime-O proxy requires an existing bssh control master and opens the requested
session on that master's authenticated transport. bssh control sockets are not
wire-compatible with OpenSSH control sockets; each client must use a master
created by the same program.
Use the long bssh options when selecting clusters or changing multi-node output behavior:
bssh --cluster production --filter 'web*' --no-prefix --stream uptime
bssh --cluster production --fail-fast --batch deploy.shThe pdsh parser remains separate from the native bssh parser. Its established short options keep their pdsh meanings when any of these activation methods is used:
bssh --pdsh-compat -w host[1-5] -f 2 -N -b -k -S uptime
pdsh -w host[1-5] -f 2 -N -b -k -S uptime
BSSH_PDSH_COMPAT=1 bssh -w host[1-5] -f 2 -N -b -k -S uptimeIn pdsh mode, -f is fanout, -N removes the hostname prefix, -b selects
batch interrupt handling, -k is fail-fast, and -S returns the largest
remote exit status. The pdsh-compatible parser does not expose bssh's cluster,
agent-authentication, or sudo-password extensions. Use native bssh mode and
the long options --cluster, --use-agent, and --sudo-password for those
features.
- Replace all displaced bssh short options with the long forms in the table.
- Keep pdsh short options only in scripts that explicitly activate pdsh mode.
- Review every former
-A: authentication-agent forwarding is more security-sensitive than local agent authentication. - Add
-Nto forwarding-only SSH invocations that should not open a shell. - Test wrappers and aliases because
-Sand-bnow require values.