你使用的Go版本是什么( go version
)?
我正在使用最新的 https://github.com/buptczq/WinCryptSSHAgent 版本
这个问题在最新版本的发布中是否重现?
就我的代码分析来看:是的
你使用的操作系统和处理器架构是什么( go env
)?
Windows 10, x64
你做了什么?
TL;DR:意识到 ssh-add
的 -c
-flag被 https://github.com/buptczq/WinCryptSSHAgent 忽略了,而 -t
没有。
更多详情请参见 buptczq/WinCryptSSHAgent#55
打开那个问题后,我进一步调查并理解了,问题出在库里。特别是ssh代理的密钥环实现:https://github.com/golang/crypto/blob/a769d52b0f97a420f3dcafc17f8b3384217859a2/ssh/agent/keyring.go。
虽然https://github.com/golang/crypto/blob/a769d52b0f97a420f3dcafc17f8b3384217859a2/ssh/agent/keyring.go#L147-L148 说 "注意,任何给定的约束都被忽略。",时间约束实际上并不是这样,因为在 golang/crypto@8e06e8d 中添加了适当的处理。然而,提交描述中的声明 "如果设置了 ConfirmBeforeUse,将要求用户确认签名操作" 不是真的:就我理解的代码而言,文件中没有包含任何sch处理。
你期望看到什么?
我期望看到的是,要么两个标志都被忽略/不支持(这在Windows上的Pageant以及Microsoft OpenSSH中很常见),要么两个标志都受支持。当然最好是最新的。
你看到了什么?
如上所述:ssh-add -t
被正确处理,而 ssh-add -c
没有被处理。
1条答案
按热度按时间kkih6yb81#
看起来它在https://golang.org/cl/28956的审查期间被移除了,因为该实现依赖于一个外部程序,但提交信息和文档注解没有更新。