Repository navigation
v1.1
Switched default password delivery to SSH_ASKPASS; redesigned terminal output with pinned counters.
Added
SSH_ASKPASSmethod for passing passwords to SSH-s/--sshpassflag to usesshpassinstead ofSSH_ASKPASS- ASCII banner in
--help(version watermark) and--version(copyright info) print_attack_configprints Target, SSH method, parallel jobs, delay, timeout, and retries before pre-flight- Resume stats block shows Users, Passwords, Combinations, and Previously tried before
Starting attack... Passwords triedandPasswords remaininglines pinned afterStarting attack...via ANSI DSR; update live- Cursor hidden during attack (
\033[?25l), restored on teardown - EXIT trap resets scroll region and restores cursor unconditionally on any exit
- Both username and password file errors reported together before exiting
RETRY_SLEEP(0.05s, retry backoff) andPOLL_SLEEP(0.05s, job-slot polling) constants- OpenSSH version check at startup: exits with an error if the client is older than 8.4 when using default SSH_ASKPASS mode
- SSH exit 255 disambiguated via stderr:
Permission denied= auth failure, else connection error -o NumberOfPasswordPrompts=1added toSSH_ASKPASScalls to fail fast on bad passwords
Changed
wait_for_job_slotreplacedjobs -rp | wc -lwith${#CHILD_PIDS[@]}(no forked subshells)format_numberwrites into a named variable viaprintf -v; inline duplicates removed- Default SSH password delivery method is now
SSH_ASKPASS -l/--listcolumn width calculated dynamically from catalog content- Startup counts (Users, Passwords, Combinations) shown as separate labeled lines before
Starting attack... - Help text no longer shown after error messages
maxusercount/maxpasscountset once inrestore_progress; duplicategrep -ccalls removed- Retry backoff sleep uses fixed
RETRY_SLEEP(0.05s) instead of${delay}; retry frequency is now independent of--delay - Script moved to
src/getsshpass.sh
Fixed
check_ssh_connectionsshpass path: exit 3 now treated as connection error (was: fell through to "Connection successful")