SSH Authentication Configuration#
Bluefin previously shipped a system-wide SSH askpass configuration that set SUDO_ASKPASS (and by extension SSH_ASKPASS) to /usr/libexec/openssh/gnome-ssh-askpass via a profile.d script. This binary does not exist on Bluefin systems, causing fatal: cannot exec '/usr/libexec/openssh/gnome-ssh-askpass': No such file or directory errors on every Git or SSH operation that triggered a credential prompt .
The configuration was removed in projectbluefin/common#118 (merged January 4, 2026) .
What Was Removed#
A single profile.d script — system_files/bluefin/etc/profile.d/askpass.sh — was deleted :
#!/usr/bin/bash
SUDO_ASKPASS='/usr/libexec/openssh/gnome-ssh-askpass'
export SUDO_ASKPASS
This script ran in every login shell and unconditionally exported SUDO_ASKPASS to a non-existent path. Because SSH_ASKPASS follows SUDO_ASKPASS in many contexts, it poisoned both variables for all interactive sessions.
Why It Broke Tooling#
| Variable | Effect when set to missing binary |
|---|---|
SUDO_ASKPASS | sudo -A fails; error emitted to stderr |
SSH_ASKPASS | SSH/Git prompts fail instead of falling back to terminal |
VS Code's Git integration and dev container tooling both rely on being able to fork SSH or Git processes that prompt for credentials. With SSH_ASKPASS pointing to a missing binary, VS Code silently failed on any operation requiring a passphrase or remote credential — and error output appeared in the terminal rather than VS Code's credential UI .
The systemctl --user show-environment command surfaced the bad variables:
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SUDO_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
Current Behavior (Post-Fix)#
Neither SSH_ASKPASS nor SUDO_ASKPASS are set by the system. The rationale from the fix: "This should be done by the user if they want SSH_ASKPASS instead of Bluefin defining it."
This means:
- Git and SSH operations prompt in the terminal by default (correct behavior for a desktop OS).
- VS Code's own credential helper (
git-credential-libsecret, which is installed as part of the base image) handles secure storage without interference (see base package list). - Users who want graphical SSH prompts can set
SSH_ASKPASSthemselves in~/.config/environment.d/.
Workaround (If Still Affected)#
If you're on an older image or still see the bad variables in your environment, add to your shell config:
unset SSH_ASKPASS SUDO_ASKPASS
Or set them in ~/.config/environment.d/askpass.conf (systemd user environment) to the correct path for your preferred askpass helper.
Related#
- Upstream issue: ublue-os/bluefin#3975 — original bug report
- Fix PR: projectbluefin/common#118
- Git credential storage:
git-credential-libsecretis included in the base image for secure GNOME keyring integration - VS Code password store: For VS Code GitHub auth, configure
code --password-store="gnome-libsecret"if credential prompts are missing