| Summary: | Authentication hangs when SSH_ASKPASS_REQUIRE=prefer and remote host key fingerprint isn't known | ||
|---|---|---|---|
| Product: | Portable OpenSSH | Reporter: | Jack Foy <jack+portable-openssh-bugzilla> |
| Component: | ssh | Assignee: | Assigned to nobody <unassigned-bugs> |
| Status: | NEW --- | ||
| Severity: | normal | CC: | djm, jack+portable-openssh-bugzilla |
| Priority: | P5 | ||
| Version: | 8.6p1 | ||
| Hardware: | amd64 | ||
| OS: | Mac OS X | ||
|
Description
Jack Foy
2021-06-16 06:03:52 AEST
I can't replicate this on openssh-8.6 or 8.7 (on Linux/OpenBSD) and the common X11 askpass programs.
> It looks like all interactive input goes through read_passphrase() in
> readpass.c, whether or not it's a credential. Is this intentional?
Yes - read_passphrase(), despite its name, supports reading both secret and public strings from the user. It's completely intentional, as it is the central place that decides whether to invoke SSH_ASKPASS or to read from the TTY.
If I had to guess what is going wrong in your case: your SSH_ASKPASS program is probably returning something other than strictly "yes", "no" or the key fingerprint and so you're repeatedly going around the loop inside sshconnect.c:confirm()
|