强制SSH在shell中(而不是在窗口中)询问我的私钥密码


9

引导后第一次使用SSH时,它会要求我提供私钥解锁密码(这是我期望的行为)。但这是在窗口而不是外壳中进行的(类似于gksudoVS sudo)。这令人沮丧(我必须使用鼠标单击窗口),其次有时会导致错误(我使用Guake终端,有时是全屏显示,在这种情况下,我无法专注于SSH窗口,因此我不得不重新启动X )。

所以,我的问题是:是否有一种方法可以强制SSH在命令行上要求我的私钥密码,而不是弹出一个窗口?


env ssh ...会这样做,但这会丢失ssh-agent,因此不太正确。也许有人可以找出其余的。
约书亚

Answers:


7

您可能已经*-askpass安装了其中一个软件包,并且相应地SSH_ASKPASS设置了环境变量。参见ssh(1)。取消设置变量(例如在~/.bashrc)或卸载软件包即可解决问题。

另请参阅告诉SSH使用图形提示输入密钥密码以解决反向问题以及有关环境的一些提示。


1
情况可能并非如此。SSH总是在TTY中要求输入密码,除非它没有密码(如果您在guake中,我敢打赌您已经有密码)。提示很可能来自gnome-keyring(OP的屏幕快照会确认),如我的其他答案所述。
雅库耶

实际上,该gnome-askpass窗口看起来并不像通常的那样:askpass仅显示带有文本字段的“输入您的OpenSSH密码”。我尝试拍摄屏幕截图,但是它不起作用:该窗口捕获关键事件(导致全屏遮盖的错误的同一问题)。如有需要,我会拍照。
Adrien Luxey

@AdrienLuxey尝试Gimp,它可以在超时后对活动窗口进行截图。但更重要的是,您应该检查ps树以查看谁/什么调用该窗口。
墨菲

3

您已在gnome-keyring或其他内容中添加了私钥,这会在GUI提示符下输入密码。您无法在此设置中摆脱它。

但是您可以在您的菜单中使用normal ssh-agent(通过删除gnome-keyringssh-agent之后的开头)和AddKeysToAgent yesoption ssh_config,这将导致您预期的行为-引导后,代理将没有任何键,并且在启动后将自动添加它们。第一次使用。

相关问题解释了类似情况:

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.