OpenSSH also supports using a script to get the password if using the `SSH_ASKPASS` environment variable, and being invoked under a non-tty input e.g.
{ echo '#!/bin/sh' ; echo 'echo my_password' ; } > password.sh # don't do it like this :-p
chmod +x password.sh
SSH_ASKPASS=./password.sh DISPLAY= setsid ssh user@host /bin/id
In newer SSH versions `DISPLAY` is not required (but there is a new `SSH_ASKPASS_REQUIRE` environment variable), but in older (e.g. 8.x) versions, then it needs to be set as the default ssh-ask-password was an X11 command, and I believe the logic assumed that scenario.