Sign_and_send_pubkey:签名失败:代理拒绝操作

Sign_and_send_pubkey:签名失败:代理拒绝操作

运行 xubuntu 16.04,使用 xfce,我尝试使用带有密码的 ssh 密钥。我想将我的密码密钥添加到我的 ssh-agent 中,但我不知道为什么无法添加它。我的启动中没有启用 gnome 密钥环或类似的东西。 ssh-add privatekey,添加密钥,但是当我再次尝试 ssh 时,它只会打印错误两次。一些修复说要在启动时禁用 gnome 密钥环,但我已经禁用了它。这一切都是在我更换树莓派的 ssh 密钥时发生的。

在此输入图像描述

> OpenSSH_7.2p2 Ubuntu-4ubuntu2.1, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/potato/.ssh/config
debug1: /home/potato/.ssh/config line 1: Applying options for paj
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to 111.229.105 [111.229.105] port 22253.
debug1: Connection established.
debug1: identity file /home/potato/.ssh/hplaptop_to_pi type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/potato/.ssh/hplaptop_to_pi-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.7p1 Raspbian-5+deb8u3
debug1: match: OpenSSH_6.7p1 Raspbian-5+deb8u3 pat OpenSSH* compat 0x04000000
debug1: Authenticating to 111.229.105:22253 as 'pi'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: [email protected]
debug1: kex: host key algorithm: ecdsa-sha2-nistp256
debug1: kex: server->client cipher: [email protected] MAC: <implicit> compression: none
debug1: kex: client->server cipher: [email protected] MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ecdsa-sha2-nistp256 SHA256:zrjeaaHD8TjzsdsdssssA2fXnG3gxp2U
debug1: Host '[111.229.105]:22253' is known and matches the ECDSA host key.
debug1: Found key in /home/potato/.ssh/known_hosts:2
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: rekey after 134217728 blocks
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/potato/.ssh/hplaptop_to_pi
debug1: Server accepts key: pkalg ssh-rsa blen 535
sign_and_send_pubkey: signing failed: agent refused operation
debug1: Offering RSA public key: potato@potato-HP-tomato
debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: potato@hplaptop
debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: potato@hplaptop
debug1: Server accepts key: pkalg ssh-rsa blen 535
sign_and_send_pubkey: signing failed: agent refused operation
debug1: Offering RSA public key: rsa-key-20141222
debug1: Authentications that can continue: publickey
debug1: Offering RSA public key: potato@potatolaptop
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).

答案1

因此,经过几个小时无意识的谷歌搜索和帮助后,问题被发现了。我使用 ssh-keygen 生成 ssh 密钥,并添加了一个附加参数“-o”,它以新格式为 openSSH 生成密钥。问题是我的 gnome-keyring 不支持此类密钥,因为这些密钥具有 Ed255519 签名方案。自 3.20 起,Gnome-keyring 不再支持该功能。我恢复到 RSA,没有更多问题了!

答案2

就我而言,问题是 GNOME 密钥环持有无效的 ssh 密钥密码。在花费了大量时间解决此问题后,我运行seahorse并找到了保存空字符串的条目。

我只能猜测这是由于在早些时候第一次使用时输入了错误的密码造成的,然后可能取消了请求者等以便退回到命令行。

  • 使用正确的密码更新条目立即解决了问题。

  • 删除该条目(从“登录”密钥环)并在第一个提示时重新输入密码(并选中相应的复选框)也可以解决此问题。

现在,代理从名为“login”的登录时解锁密钥环中获取正确的密码,并且不再要求密码或“拒绝操作”。当然YMMV。

答案3

许多解决此类问题的建议都暗示更改 ~/.ssh 目录及其包含的文件的权限。更多相关内容:https://gist.github.com/grenade/6318301

有些人甚至建议ssh-add这可能无法解决问题并且可能是多余的。

尝试了以上两种方法后,并没有为我解决这个问题。相反,问题出在我生成的 ssh 密钥的类型上。

正如 @strudelj nudelj 提到的,检查您要连接的服务器是否支持您的公钥使用的加密类型非常重要。例如,我尝试使用的 gitlab 服务器不支持通常存储在中的密钥类型~/.ssh/id_dsa.pub

相反,它需要ed25519rsa 加密密钥。

对于ed25519,可以使用:生成密钥$ssh-keygen -t ed25519 -C "[email protected]"

然后,$ssh -T user@server应该仔细检查该密钥是否被接受并且可以建立连接。

相关内容