win11安装配置Gpg4win,使putty、openssh、git支持yubikey 5 nfc

说明

win11上安装Gpg4win、openssh、git,用yubikey 5 nfc实现ssh免密登陆,git签名。

所需软件

配置

修改C:\Users\当前用户名\AppData\Roaming\gnupg目录下面gpg-agent.conf文件,没有就创建,添加以下内容,换行符LF:

enable-ssh-support
enable-putty-support
enable-win32-openssh-support
use-standard-socket
default-cache-ttl 600
max-cache-ttl 7200

重启gpg-agent:

gpg-connect-agent killagent /bye
gpg-connect-agent /bye

测试

openssh登陆
putty登陆
git登陆

执行git clone等命令提示“Permission denied (publickey)”解决办法

常见原因:

此错误通常发生在 Git 无法使用远程存储库验证SSH 密钥时,通常是由于 SSH 密钥的配置问题或系统上的 OpenSSH 可执行文件冲突造成的。

故障排除步骤:
  1. 检查 SSH 密钥设置:

    确保SSH 密钥已正确设置并添加到 SSH 代理。可以运行以下命令来验证:

    1
    ssh -vT git@github.com

    此命令将提供详细的调试输出。

  2. 验证 Git 配置:
    如果使用的是 Windows,则问题可能是由于 Git 使用的 OpenSSH 版本与SSH 代理使用的版本不同。默认情况下,Windows 可能使用其内置的 OpenSSH,而 Windows 版 Git 可能使用其自己的版本。

    通过配置 Git 以使用正确的 OpenSSH 可执行文件来解决此问题:

    1
    git config --global core.sshCommand "C:\\Windows\\System32\\OpenSSH\\ssh.exe"
  3. 修改 Git 配置文件(~/.gitconfig):

    或者,可以将以下内容添加到 .gitconfig 文件中:

    1
    2
    [core]
    sshCommand = 'C:\\Windows\\System32\\OpenSSH\\ssh.exe'
  4. 重新启动 SSH 代理:

    如果使用 SSH 代理,确保它正在运行并且已添加密钥:

    1
    ssh-add -l

    如果没有列出密钥,添加密钥:

    1
    ssh-add ~/.ssh/id_rsa
  5. 检查存储库访问:

    确保拥有要访问的存储库的必要权限。