首页 时政热点 科技头条 智能AI 安全攻防 数码硬件 开发者生态 归档 标签 关于

Zig 中的 GTK4 SSH-askpass

2026-07-31 1 阅读 约10分钟阅读 surprisetalk
分享:
字号:
Gentoo 树中的每个 ssh-askpass 都会引入 X11 或完整的 KDE 堆栈,因此我使用 Zig 0.16 和 GTK4 编写了自己的版本,并使用手写的绑定将 X 排除在构建之外。我在笔记本电脑上运行强化的 Gentoo,大多数时候我从不碰 ssh-askpass,因为我在大多数系统中使用 -sk 密钥。不过,有一类情况我确实需要它,即程序需要常规 ED25519 密钥的 SSH 密钥密码,但没有终端可以读取它。通常的情况是 go get 或一般的 go 工具链,在没有 TTY 的情况下运行的构建过程中通过 SSH 获取私有模块。 OpenSSH 无法在管道上进行提示,因此它会运行 SSH_ASKPASS 指向的任何内容,并将密码提示放在窗口中。多年来我没有为此安装任何东西,并且必须解决这些情况。主要原因是 Gentoo 的 Portage 提供:  ~ emerge -s ssh-askpass [ 搜索关键字的结果 : ssh-askpass ] 正在搜索... * kde-plasma/ksshaskpass 可用的最新版本: 6.6.6 安装的最新版本: [ 未安装 ] 文件大小: 32 KiB 主页: https://kde.org/plasma-desktop https://invent.kde.org/plasma/ksshaskpass 描述:通过 KDE 钱包集成实现 ssh-askpass 许可证:GPL-2 * lxqt-base/lxqt-openssh-askpass 可用的最新版本:2.4.0 安装的最新版本:[未安装] 文件大小:19 KiB 主页:https://lxqt-project.org/ https://github.com/lxqt/lxqt-openssh-askpass/ 描述:LXQt OpenSSH 用户密码提示工具 许可证:LGPL-2.1 LGPL-2.1+ * net-misc/gnome-ssh-askpass 最新可用版本:10.0_p1 最新安装版本:[未安装] 文件大小:1,927 KiB 主页:https://www.openssh.com/ 描述:基于 GTK 的密码对话框,用于 OpenSSH 许可证:BSD GPL-2 * net-misc/ssh-askpass-fullscreen 最新可用版本:1.2 安装的最新版本:[未安装] 文件大小:81 KiB 主页:https://github.com/atj/ssh-askpass-fullscreen 说明:用 GTK2 编写的小型 SSH Askpass 替代品 许可证:GPL-2+ * net-misc/x11-ssh-askpass 可用的最新版本:1.2.4.1-r2 安装的最新版本:[未安装] 文件大小:30 KiB 主页:https://github.com/sigmavirus24/x11-ssh-askpass 说明:用于 OpenSSH 的基于 X11 的密码对话框 许可证:HPND [找到的应用程序:5] 其中每一项都至少有一个不便之处不想忍受。我的系统使用全局 -X USE 标志运行,因此在我进一步查看之前,任何需要 X11 的东西都已被排除。在这五个中,kde-plasma/ksshaskpass 是唯一一个没有任何 X11 依赖性的,这应该使它成为明显的选择,但问题是随之而来的其他一切。作为 Sway 用户,我不希望机器上有完整的 KDE 堆栈只是为了偶尔输入密码,这就是 ksshaskpass 安装所引入的内容: ~ # emerge -a kde-plasma/ksshaskpass 这些是将按顺序合并的包: 计算依赖项...完成!依赖性解析花费了 1.18 秒(回溯:0/20)。 [ ebuild N ] kde-frameworks/kf-env-6 [ ebuild N ] dev-libs/plasma-wayland-protocols-1.21.0 USE = "-test" [ ebuild N ] dev-libs/qtkeychain-0.16.0 USE = "-keyring -test" [ ebuild N ] kde-frameworks/ksecretd-services-6.27.0 USE =“(-systemd)”[ ebuild N ] kde-frameworks/breeze-icons-6.27.0 USE =“-test”[ ebuild N ] kde-frameworks/ki18n-6.27.0 USE =“-debug -test” PYTHON_SINGLE_TARGET =“python3_14 -python3_12 -python3_13”[ ebuild N ] kde-frameworks/kconfig-6.27.0 USE = "dbus -debug -qml -test" [ ebuild N ] kde-frameworks/kcoreaddons-6.27.0 USE = "dbus -debug -test" [ ebuild N ] kde-frameworks/kwidgetsaddons-6.27.0 USE = "-debug -designer -test" [ ebuild N ] kde-frameworks/kdbusaddons-6.27.0 USE = "-X -debug -test" [ ebuild N ] kde-frameworks/kwindowsystem-6.27.0 USE = "wayland -X -debug -test" [ ebuild N ] app-crypt/qca-2.3.10-r1 USE = "ssl -botan -debug -doc -examples -gcrypt -gpg -logger -nss -pkcs11 -sasl -softstore -test" [ ebuild N ] kde-frameworks/karchive-6.27.0 USE = "crypt zstd -debug -test" [ ebuild N ] kde-frameworks/kguiaddons-6.27.0 USE = "dbus wayland -X -debug -test" [ ebuild N ] kde-frameworks/kdoctools-6.27.0 USE = "nls -debug -test" [ ebuild N ] kde-frameworks/kcolorscheme-6.27.0 USE = "-debug" [ ebuild N ] kde-frameworks/kcrash-6.27.0 USE = "-X -debug -test" [ ebuild N ] kde-frameworks/knotifications-6.27.0 USE = "-debug" [ ebuild N ] kde-frameworks/kservice-6
这篇文章对您有帮助吗?

订阅66必读

每日精选科技资讯,直达你的邮箱