当尝试通过 SSH (
\\\$wsl\somedir\
) 将 Windows 上的 PhpStorm 中的远程存储库克隆到 WSL2 子系统 ([email protected]/user/repo.git
) 时,我收到错误“权限被拒绝(公钥)”。私钥正确位于/home/user/.ssh/id_rsa
内。
但是,直接从 WSL 中的 shell 尝试相同的操作时(在
eval ssh-agent
和 ssh-add
之后)是有效的。但使用 PhpStorm GUI 是不可能的 (New Project -> Get from VCS
)。
私钥正确位于
内。/home/user/id_rsa
默认位置应该是
/home/user/.ssh/id_rsa
,而不是 /home/user/id_rsa
。
如果这是一个拼写错误,并且密钥实际上在
.ssh
中,请从您首先输入的 shell 中打开 PhpStorm:export GIT_SSH_COMMAND='ssh -Tv'
。
检查终端(或尝试从终端克隆)以查看 Git 尝试作为私钥访问的内容。
解决方案似乎只是使用“chmod 0600 id_rsa”更改存储在 WSL 中的私钥的访问权限。
这对我有用。将您的
~/.ssh/config
与以下内容对齐:
Host github.com
User git
Hostname github.com
PreferredAuthentications publickey
IdentityFile /home/user/.ssh/id_rsa
StrictHostKeyChecking no
IdentitiesOnly yes
AddKeysToAgent yes
我怀疑 PHPStorm 使用了某种具有不同初始配置的不同类型的 shell,而不是常规的 shell。上面指示 SSH 使用特定的用户和特定的密钥文件(注意,它可以命名为任何你想要的,只要你这样配置它,而不仅仅是
id_rsa
等),没有其他方式。