为了使用 ssh 登录我的共享托管服务器,我生成了公钥/私钥,授权了公钥,然后下载了公钥和私钥,最后将这些密钥移动到运行 ubuntu 的桌面上的 .ssh 文件夹中。
以下是我的密钥的权限:
-rw-rw-r-- id_rsa
复制代码
当我尝试通过 ssh 进入我的服务器时,系统要求我输入密码,并提示“应用程序想要访问私钥,但私钥已被锁定”。
我试过登录密码,但不起作用。我遗漏了什么?
(转自 stackoverflow)
答案1
根据Gnome Keyring SSH 代理wiki,有三种方法可以实现这一点:
- 使用“启动应用程序”capplet(即:gnome-session-properties)并禁用“SSH 密钥代理”启动程序。
- 使用此配置选项构建不支持 SSH 的 gnome-keyring:
./configure --disable-ssh-agent
- 如果您手动或从脚本启动 gnome-keyring,则可以使用 --components 选项来排除启动 SSH 支持:
gnome-keyring-daemon --components keyring,pkcs11
答案2
我认为这种情况发生是因为gnome-keyring
守护进程正在管理 ssh 密钥(它不应该这样做,因为 ssh 已经有代理了)。您可以通过发出以下命令告诉守护进程停止执行此操作:
sudo gconftool-2 --set -t bool /apps/gnome-keyring/daemon-components/ssh false
我也见过这个版本的命令(来源):
sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type bool --set /apps/gnome-keyring/daemon-components/ssh FALSE
答案3
对我来说,以下解决方案有效,将私钥添加到 ssh-agent
$ eval "$(ssh-agent -s)"
> Agent pid 59566
$ ssh-add ~/.ssh/id_rsa
答案4
对我来说,这不是密码主机或服务器,但密码这是我生成密钥时提供的。