Windows11下Nushell中Git无法复用已添加SSH密钥求助
Git未使用系统OpenSSH客户端:Git for Windows自带独立的SSH工具集,若Nushell中调用的是Git自带的
ssh.exe,它可能无法和系统运行的ssh-agent互通。执行git config --get core.sshCommand查看当前配置,若路径指向Git安装目录下的ssh(如C:\Program Files\Git\usr\bin\ssh.exe),可修改为系统OpenSSH路径:git config --global core.sshCommand "C:\Windows\System32\OpenSSH\ssh.exe"。Nushell未继承ssh-agent环境变量:ssh-agent运行时会生成
SSH_AUTH_SOCK和SSH_AGENT_PID两个环境变量,若Nushell启动时未加载这些变量,Git无法找到已运行的agent。在Nushell中执行echo $env.SSH_AUTH_SOCK,若输出为空,需将ssh-agent启动时输出的变量配置到Nushell的config.nu文件中,比如添加:$env.SSH_AUTH_SOCK = "/run/ssh-agent.sock" # 替换为实际的sock路径 $env.SSH_AGENT_PID = "1234" # 替换为实际的PID或者确保启动Nushell时能继承这些变量(比如从已启动ssh-agent的终端中打开Nushell)。
SSH密钥文件权限不符合要求:Windows下SSH私钥文件若允许其他用户读取,会被ssh客户端拒绝使用。右键私钥文件→属性→安全→高级,删除除当前用户外的所有权限,仅保留当前用户的读取/完全控制权限。
Git远程仓库URL配置错误:若远程仓库使用的是HTTPS格式URL,Git会走账号密码验证而非SSH。执行
git remote -v检查远程地址,确保是SSH格式(如git@github.com:username/repo.git),若不是则修改:git remote set-url origin git@github.com:username/repo.git。未在SSH配置中指定密钥文件:若使用的不是默认命名的密钥(如不是
id_rsa),即使已通过ssh-add添加,Git可能无法自动匹配。可在~/.ssh/config文件中添加对应Host的配置:Host github.com IdentityFile ~/.ssh/your_custom_key
内容的提问来源于stack exchange,提问作者Wolfone

