当我启动后第一次使用 SSH 时,它会询问我的私钥解锁密码(这是我期望的行为)。但它是在窗口中执行的,而不是在 shell 中执行的(类似于gksudo
VS sudo
)。这很令人沮丧(我必须使用鼠标单击窗口),其次有时会导致错误(我使用 Guake 终端,有时全屏,在这种情况下我无法专注于 SSH 窗口,我被迫重新启动 X )。
所以,我的问题是:有没有办法强制 SSH 在命令行上询问我的私钥密码,而不是弹出一个窗口?
答案1
您可能已经安装了其中一个*-askpass
软件包,并且环境变量SSH_ASKPASS
;看SSH(1)。取消设置变量,例如在您的 中~/.bashrc
,或卸载软件包应该可以解决问题。
也可以看看告诉 SSH 使用图形提示输入密钥密码对于相反的问题和一些关于环境的提示。
答案2
您已将私钥添加到gnome-keyring
或其他内容中,这会发出输入密码的 GUI 提示。在此设置中您无法摆脱它。
但是可以在您的 中使用正常ssh-agent
(通过删除gnome-keyring
或ssh-agent
之后启动)和AddKeysToAgent yes
选项ssh_config
,这将导致您期望的行为 - 启动后,代理将没有任何密钥,并且它们将在第一次使用。
类似案例在相关问题中有解释: