Gus*_*uss 6 ssh gnome kde ssh-agent
在 Ubuntu 上使用 GNOME 桌面时,如果我使用 OpenSSH 客户端连接到另一台计算机(从 gnome 终端运行),我会收到一个图形弹出窗口,询问我的私钥的密码短语。之后,我不再需要输入密码,因为它已被 SSH 代理缓存。
在 KDE 下,它不是那样工作的——当我从 konsole 启动 ssh 时,即使 ssh-agent 正在运行,我每次都会收到输入密码短语的文本提示。
如果我从终端运行 ssh-add,那么我可以在终端上输入我的密码短语,它将被 ssh-agent 存储,我不会再收到任何密码短语提示,而如果我运行 ssh-add KRunner 图形命令行(“运行”对话框)然后我得到一个具有相同行为的图形提示。问题是我必须记住每次登录桌面时都运行 ssh-add。
我怎样才能让 ssh 在 KDE 下运行,就像它在 GNOME 上一样——第一次需要密码短语时,弹出一个图形对话框并将密码短语存储在代理中。
我已经安装了 ksshaskpass,但这并没有改变任何东西。
我不知道内部原理,所以要解释为什么在 GNOME 中它可以工作,而在 KDE 中却不能,但我可以提出一个解决方案。
在您的 中定义如下函数~/.bashrc:
ssh() {
if ! ssh-add -l &>/dev/null; then
ssh-add </dev/null &>/dev/null
fi
command ssh "$@"
}
Run Code Online (Sandbox Code Playgroud)
即,如果代理尚未存储密钥 ( ! ssh-add -l),则使用以下输入调用它/dev/null:这是为了说服ssh-add没有终端,并强制使用 GUI 窗口询问密码。
您可以将SSH_ASKPASS环境变量设置为指向不同的应用程序以询问密码。
| 归档时间: |
|
| 查看次数: |
2637 次 |
| 最近记录: |