0

我正在使用 YubiKey 5Ci FIPS(固件 5.4.2)并在运行 Windows 10(21H1)的 Surface Book 上安装了 Git 版本 2.32.0.windows.1。我希望能够使用安全密钥通过 GitHub 进行身份验证。

我已经能够使用以下方法创建新的 SSH 密钥:

ssh-keygen -t ed25519-sk -C <email address>

从这里我将 id_ed25519_sk.pub 的内容复制到我的 GitHub 帐户。

到目前为止一切正常。但是,在进行提取或推送时,我无法使用新密钥。运行 ssh-add -l 会显示正确的帐户,但是我收到以下错误:

sign_and_send_pubkey: signing failed for ED25519-SK "/c/Users/markp/.ssh/id_ed25519_sk" from agent: agent refused operation
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

没有什么提示我触摸 YubiKey 来验证请求。从 GitHub 报告,新的 SSH 密钥从未被使用过。

我在网上看到了各种文章,但是我无法解决这个问题 - 有人可以帮忙吗?

编辑来自env |的输出 grep SSH是:

SSH_AUTH_SOCK=/tmp/ssh-j70Yyd6E8tgs/agent.507
SSH_AGENT_PID=508
PATH=/c/Users/markp/bin:/usr/local/bin:/usr/bin:/bin:/opt/bin:/c/Program Files/WindowsApps/Microsoft.WindowsTerminal_1.7.1033.0_x64__8wekyb3d8bbwe:/c/Python39/Scripts:/c/Python39:/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/WINDOWS/System32/WindowsPowerShell/v1.0:/c/WINDOWS/System32/OpenSSH:/c/Program Files (x86)/Microsoft SQL Server/Client SDK/ODBC/130/Tools/Binn:/c/Program Files (x86)/Microsoft SQL Server/140/Tools/Binn:/c/Program Files (x86)/Microsoft SQL Server/140/DTS/Binn:/c/Program Files (x86)/Microsoft SQL Server/140/Tools/Binn/ManagementStudio:/c/Program Files/Microsoft SQL Server/130/Tools/Binn:/c/Program Files/Microsoft/Web Platform Installer:/c/Program Files/dotnet:/c/Program Files (x86)/Microsoft SQL Server/110/DTS/Binn:/c/Program Files (x86)/Microsoft SQL Server/120/DTS/Binn:/c/Program Files (x86)/Microsoft SQL Server/130/DTS/Binn:/c/Program Files (x86)/Microsoft SQL Server/150/DTS/Binn:/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn:/c/Program Files/nodejs:/c/ProgramData/chocolatey/bin:/c/Program Files/PowerShell/7:/c/Program Files/TortoiseGit/bin:/c/Program Files/Azure Data Studio/bin:/c/Program Files (x86)/dotnet:/c/Program Files/Git/cmd:/c/Users/markp/AppData/Local/Microsoft/WindowsApps:/c/ProgramData/markp/GitHubDesktop/bin:/c/Users/markp/.dotnet/tools:/c/Users/markp/AppData/Local/Microsoft/WindowsApps:/c/Users/markp/.dotnet/tools:/c/Users/markp/AppData/Roaming/npm:/c/Program Files (x86)/GitHub CLI:/c/Program Files/Azure Data Studio/bin:/usr/bin/vendor_perl:/usr/bin/core_perl
ORIGINAL_PATH=/c/Program Files/WindowsApps/Microsoft.WindowsTerminal_1.7.1033.0_x64__8wekyb3d8bbwe:/c/Python39/Scripts:/c/Python39:/c/Program Files (x86)/Common Files/Oracle/Java/javapath:/c/WINDOWS/system32:/c/WINDOWS:/c/WINDOWS/System32/Wbem:/c/WINDOWS/System32/WindowsPowerShell/v1.0:/c/WINDOWS/System32/OpenSSH:/c/Program Files (x86)/Microsoft SQL Server/Client SDK/ODBC/130/Tools/Binn:/c/Program Files (x86)/Microsoft SQL Server/140/Tools/Binn:/c/Program Files (x86)/Microsoft SQL Server/140/DTS/Binn:/c/Program Files (x86)/Microsoft SQL Server/140/Tools/Binn/ManagementStudio:/c/Program Files/Microsoft SQL Server/130/Tools/Binn:/c/Program Files/Microsoft/Web Platform Installer:/c/Program Files/dotnet:/c/Program Files (x86)/Microsoft SQL Server/110/DTS/Binn:/c/Program Files (x86)/Microsoft SQL Server/120/DTS/Binn:/c/Program Files (x86)/Microsoft SQL Server/130/DTS/Binn:/c/Program Files (x86)/Microsoft SQL Server/150/DTS/Binn:/c/Program Files/Microsoft SQL Server/Client SDK/ODBC/170/Tools/Binn:/c/Program Files/nodejs:/c/ProgramData/chocolatey/bin:/c/Program Files/PowerShell/7:/c/Program Files/TortoiseGit/bin:/c/Program Files/Azure Data Studio/bin:/c/Program Files (x86)/dotnet:/c/Program Files/Git/cmd:/c/Users/markp/AppData/Local/Microsoft/WindowsApps:/c/ProgramData/markp/GitHubDesktop/bin:/c/Users/markp/.dotnet/tools:/c/Users/markp/AppData/Local/Microsoft/WindowsApps:/c/Users/markp/.dotnet/tools:/c/Users/markp/AppData/Roaming/npm:/c/Program Files (x86)/GitHub CLI:/c/Program Files/Azure Data Studio/bin
4

1 回答 1

0

我不确定 Windows 是否与此等效,但是作为一个试图解决相同问题的人,但对于 macOS,我想我会为未来的人回复。同样的理论可能也适用于 Window。

对于 Linux/macOS,导致代理失败的问题是文件夹和文件的权限过于宽松(为什么错误消息不能只说谁知道呢!)。修复很简单,来自Ask Ubuntu 上的这个答案

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

然后ssh-add按预期使用作品,Github 将再次愉快地与我互动!

于 2021-11-15T00:44:39.120 回答