-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
XShell 7 新版本修改了 signRequestAgentMsg 报文格式 #89
Comments
更新到最新版 XShell 7 Build 0157 后同样遇到无法认证的问题,但是构建了包含以上 Patch 的 WinCryptSSHAgent 仍然无法认证,回退到 Build 0151 解决了问题。 |
奇怪了,我从0157到0164日常使用,还没有问题 |
新定义的 修改成uint32后使用系统自带的rsa登陆在xshell 8 beta 0047登陆成功。 没有使用yubikey。 |
看来跟版本关系很大,我想想别的办法扔了后边多余的数据。 |
我本地编译的版本 type signRequestAgentMsgXshell7 struct {
KeyBlob []byte `sshtype:"13"`
Data []byte
Flags uint32
Unknown [4]byte
} |
我换了个思路修改 目前已知的情况是,xshell 5 和 早期的 xshell 6,缺少 Flags。 |
提了个新的版本, 这次通杀 5-8 了 |
xshell 7 可能修改了 agent 协议,或者这个协议版本有所更新(没有具体追踪)
xshell 版本: xshell 7 Build 0157
开启 debug 后有 stderr 日志打印:
断点分析得出,新版本的 signRequestAgentMsg 报文,较标准协议,多出32bit 数据 => {0, 24, 15, 254}
多次尝试,后三个byte不稳定,看不出是什么
旧版本为缺少 Flags 部分,需要补32bit。
个人有个patch,简单粗暴的裁剪后32bit,测试可以使用,没有继续刨根问底。
若可以合并,我去提PR
附上修正前 xshell 日志
The text was updated successfully, but these errors were encountered: