我遇到了一个问题,putty 的密钥转发(通过 pageant)到我的 gitlab 服务器不起作用。我正在与我的服务器进行 putty 会话,并启用了 ssh 身份验证转发。我在远程系统上的环境变量中看到了该转发的效果。
这是一次失败尝试的记录。它位于 Putty 窗口中。
login as: elyograg
Authenticating with public key "elyograg-home" from agent
elyograg@smeagol:~$ cd /etc/haproxy
elyograg@smeagol:/etc/haproxy$ git pull
[email protected]'s password: (at this point I did Ctrl-C)
elyograg@smeagol:/etc/haproxy$ env | grep SSH
SSH_AUTH_SOCK=/tmp/ssh-PaSFdm2LDk/agent.3816409
SSH_CONNECTION=192.168.1.222 58109 192.168.1.200 22
SSH_CLIENT=192.168.1.222 58109 22
SSH_TTY=/dev/pts/0
“git pull”命令应该通过密钥转发立即进行身份验证,无需密码。这在过去是有效的。
真正奇怪的是,Eclipse 和 Windows 版 Git 都使用 plink(putty 安装的一部分),使用完全相同的密钥在同一个 gitlab 服务器上运行良好。plink 程序使用与 putty 相同的代理转发机制。所以我知道这不是使用错误密钥的问题。我安装了 putty 0.76 版,这是目前最新发布的版本。我安装了预发布的 0.77 版,行为没有任何变化。
我使用的是 64 位 Windows 10,已完全更新。CPU 不支持 Windows 11。我尝试使用的服务器是 64 位 Ubuntu Server 20.04,也是完全更新的,运行在 Dell R720xd 上。
我试图找到 putty 的支持资源,但似乎没有。他们列出了几个 usenet 组用于一般 ssh 讨论。
答案1
降级到 Putty 0.74 解决了这个问题。我会考虑提交 Putty 上的错误。我也尝试了 0.75,但没有用。
编辑:
我联系了 putty 项目。他们知道这个问题,并已修复。很可能我在升级到 0.77pre 之前忘记关闭 pageant。pageant 和 putty 都必须升级才能修复错误。我再次升级,确保我已停止 pageant,现在一切正常,可以运行预发布版本。
https://www.chiark.greenend.org.uk/~sgtatham/putty/wishlist/win-handle-use-after-close.html