mirror of
https://github.com/clearml/dropbear
synced 2025-03-03 10:41:39 +00:00
Add support for SSH_ASKPASS_ALWAYS env variable for dbclient. If it
(and also SSH_ASKPASS) is set then dbclient will use an external askpass program regardless of whether DISPLAY is set or stdin is a TTY. Suggested by Davyd Madeley for handheld devices. --HG-- extra : convert_revision : c62bdee8427eb452cca38d188affe881d9fadee8
This commit is contained in:
parent
9a2cdc299f
commit
a018260fe9
@ -38,7 +38,9 @@ static int want_askpass()
|
||||
char* askpass_prog = NULL;
|
||||
|
||||
askpass_prog = getenv("SSH_ASKPASS");
|
||||
return askpass_prog && !isatty(STDIN_FILENO) && getenv("DISPLAY");
|
||||
return askpass_prog &&
|
||||
((!isatty(STDIN_FILENO) && getenv("DISPLAY") )
|
||||
|| getenv("SSH_ASKPASS_ALWAYS"));
|
||||
}
|
||||
|
||||
/* returns a statically allocated password from a helper app, or NULL
|
||||
@ -125,10 +127,16 @@ void cli_auth_password() {
|
||||
cli_opts.username, cli_opts.remotehost);
|
||||
#ifdef ENABLE_CLI_ASKPASS_HELPER
|
||||
if (want_askpass())
|
||||
{
|
||||
password = gui_getpass(prompt);
|
||||
else
|
||||
if (!password) {
|
||||
dropbear_exit("No password");
|
||||
}
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
password = getpass_or_cancel(prompt);
|
||||
}
|
||||
|
||||
buf_putbyte(ses.writepayload, SSH_MSG_USERAUTH_REQUEST);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user