首页 > 解决方案 > 在 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

这种工作,除了一些问题。

  1. 中的文件/mnt/c具有0777权限,并且chmod显然不对它们执行任何操作。当我ssh在 WSL2 中使用时,它抱怨密钥:Permissions 0777 for '/home/myuser/.ssh/id_rsa' are too open
  2. .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 键很烦人。

标签: gitwindows-10windows-subsystem-for-linuxputtygit-for-windows

解决方案


推荐阅读