我最近停止使用 ubuntu 11.10 中的完整桌面环境(厌倦了 Unity),但我正在尝试恢复部分桌面环境。我目前正在尝试在尝试使用新的 ssh 密钥时显示“解锁私钥”对话框。但是,目前提示仅显示在终端窗口中,而不是 GUI 中,这意味着它没有使用全局 ssh 代理,因此我需要在重新启动之前多次输入密钥密码。
我想我想要的是 gnome-ssh-askpass 并且我尝试设置 SSH_ASKPASS,但没有用: http://www.linuxquestions.org/questions/linux-software-2/how-to-replace-ssh-askpass-with-ssh-askpass-gnome-843220/
我也尝试过将 gnome-keyring-daemon 作为 gnome-keyring-daemon --components keyring,pkcs11,ssh 但没有帮助: http://live.gnome.org/GnomeKeyring/Ssh
答案1
我认为你真正想要的是钥匙链,这与ssh-reagent
您提到的类似。一旦在您的配置中,.bashrc
它就会提示您要求它管理的密钥的密码,只有当您启动第一的终端后,确保每个新终端都知道您的ssh-agent
。
答案2
为了解决多次输入密码的问题,第一次打开终端时输入此命令:ssh-add
直至退出时无需输入密码。
答案3
如果您在两个系统上都设置了 ssh 密钥,则该过程应该是自动的。使用默认安装,我从未需要执行任何其他操作。
如果你还没有这样做,请按照以下方法操作:
生成密钥(RSA 或 DSA)。我认为 RSA 更常见。
ssh-keygen -t rsa
或者
ssh-keygen -t dsa
将密钥传输到远程系统:
ssh-copy-id *username* @ *hostname*
如果不使用标准端口 22:(注意参数周围需要加引号)
ssh-copy-id *username* @ *hostname* -p *portnum*"
如果使用 DSA,您需要使用类似以下内容:
ssh-copy-id -i *path* *to* id_dsa
完成上述操作后,我得到了对话框。过去,我记得如果我以某种方式运行终端,它不会给出对话框,但我记不清细节了。我想那是因为我为自定义命令创建了一个热键来设置目录,因为有一个错误,即使终端知道我的主目录,它仍不断出现在根目录中。
答案4
如果 gnome 的 gui 没有提示您输入密码,则可能意味着它gnome-keyring-d
未运行或处于无效状态。我将检查该进程是否正在运行:
ps -e | grep gnome-keyring-d
如果是则杀死它:
killall -9 gnome-keyring-d
然后重启
gnome-keyring-daemon
此后,当我这样做时,ssh <remotehost>
我会得到 GUI 提示,并且ssh-agent
底层会执行它的工作。