gpg-agent 具有选项“--enable-ssh-support”和“--enable-putty-support”,允许它使用它作为众所周知的 ssh-agent 的替代品。
我一直在努力弄清楚如何在 Windows 和 git-bash 中实现这项工作。(请不要建议我使用 putty,因为我有很多脚本和其他程序需要在我的 windows pc 机器上使用 git bash 和 openssh,包括 PHPStorm 等)
我的第一次尝试是enable-ssh-support在C:\Users\[user]\AppData\Roaming\gnupg\gpg-agent.conf文件中有一行,
并export SSH_AUTH_SOCK=/c/users/[user]/AppData/Roaming/gnupg/S.gpg-agent.ssh在/c/users/[user]/.bash_profile文件中行。(我还创建了一个SSH_AUTH_SOCK带有值的 Windows 环境变量C:\Users\[username]\AppData\Roaming\gnupg\S.gpg-agent.ssh)
我在密钥环中有我的 GPG 秘密密钥,带有启用身份验证和加密的子密钥。
并且我在C:\Users\[user]\AppData\Roaming\gnupg\sshcontrol文件中添加了启用身份验证的子密钥的 keygrip 。
由于 GnuPG 2.2.4 带有--export-ssh-key选项,所以我不需要monkeysphere将 GPG 密钥转换为 OpenSSH 格式。所以我导出了我的公钥,并将它放在具有正确权限的远程 Linux 机器中的 authorized_keys 文件中(使用腻子在另一台计算机上测试)。
然后我执行:
gpg-connect-agent killagent /bye和gpg-connect-agent /byePowerShell中(并开始在后台运行的GPG代理并创建了S.gpg-agent.sshSOCK文件)。
然后尝试以常规方式 ssh 进入服务器。
它给了我一个错误。
然后我尝试启用腻子支持(enable-putty-support行中gpg-agent.conf允许您启用腻子支持。
您还需要在 …