git - 在 Windows 10 和 WSL2 之间共享 Git 和 SSH 配置
问题描述
我在 Windows 10 上安装了 Putty 和 Git,并且我还将 WSL2 与 Ubuntu 20.04 LTS 一起使用。有时我想在 WSL2 中使用 SSH 和 Git,有时在 Windows 中。一切正常,除了我必须在我的 Windows 和 WSL2 主目录中复制我的.gitconfig
,.gitignore
和文件。.ssh
我不想在两个地方维护这个配置,所以我想我可以在 WSL2 中对文件进行符号链接:
# In /home/myuser on WSL2
ln -s /mnt/c/Users/myuser/.ssh
ln -s /mnt/c/Users/myuser/.gitconfig
ln -s /mnt/c/Users/myuser/.gitignore
这种工作,除了一些问题。
- 中的文件
/mnt/c
具有0777
权限,并且chmod
显然不对它们执行任何操作。当我ssh
在 WSL2 中使用时,它抱怨密钥:Permissions 0777 for '/home/myuser/.ssh/id_rsa' are too open
- 在
.gitconfig
我已core.excludesfile
设置为C:\\\\Users\\myuser\\.gitignore
,这在从 Windows 使用 Git 而不是从 WSL2 时有效。如果我将其更改为/home/myuser/.gitignore
它适用于 WSL2 但不适用于 Windows。我尝试使用相对路径.gitignore
并完全删除core.excludesfile
指令,但都没有奏效。
有谁知道解决这些问题的方法?我确实想到 Putty 并不关心 SSH 密钥权限,所以我可以将文件移动到 WSL2,然后更新我的 Putty 连接(我有很多!)以通过\\wsl$
. 但是,这并不能解决core.excludesfile
问题,我更愿意在 Windows 中维护配置并通过/mnt/c
.
附加上下文
我正在将我的开发环境从 Windows 转换为 WSL2,使用 PhpStorm 和 Docker 进行 PHP 开发。我已将 Docker 切换为使用 WSL2 后端而不是 Hyper-V,并将我的项目文件(即 git repos)移动到 WSL2。\\wsl$
然后我使用共享在 PhpStorm 中打开项目。所有这一切都很好,我喜欢它的速度有多快,但是必须复制 git config 和 ssh 键很烦人。