在 Windows 10 和 WSL2 之间共享 Git 和 SSH 配置

问题描述 投票:0回答:2

我在 Windows 10 上安装了 Putty 和 Git,并且还在 Ubuntu 20.04 LTS 中使用 WSL2。有时我想使用 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
     显然不会对它们执行任何操作。当我在 WSL2 中使用 
    ssh
     时,它会抱怨该键:
    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
 在 WSL2 中访问它。


其他背景

我正在将我的开发环境从 Windows 转换为 WSL2,使用 PhpStorm 和 Docker 进行 PHP 开发。我已将 Docker 切换为使用 WSL2 后端而不是 Hyper-V,并将我的项目文件(即 git 存储库)移至 WSL2。然后,我使用

\\wsl$

 共享在 PhpStorm 中打开该项目。所有这些都运行良好,我喜欢它的速度有多快,但是必须复制 git 配置和 ssh 密钥很烦人。

git windows-10 windows-subsystem-for-linux putty git-for-windows
2个回答
4
投票
我找到的解决方案是将 Windows ssh 配置文件夹挂载到 WSL 副本上。

在 WSL1/2 的

/etc/fstab

 中,添加相应的条目:

# WSL 1 - mount C: with correct permissions, then bind mount .ssh C: /mnt/c drvfs rw,noatime,uid=1000,gid=1000,case=off,umask=0077,fmask=0077 0 0 /mnt/c/Users/me/.ssh /home/me/.ssh none bind,default 0 0 # WSL2 C:\Users\me\.ssh\ /home/me/.ssh drvfs rw,noatime,uid=1000,gid=1000,case=off,umask=0077,fmask=0177 0 0
根据需要更新用户名和 UID/GID。


0
投票
您可以通过将以下代码放入您的

~/.bashrc

 文件中来复制文件夹。

cp -r /mnt/c/Users/myuser/.ssh ~/.ssh_new \ && rm -rf ~/.ssh \ && mv ~/.ssh_new ~/.ssh \ && chmod 700 ~/.ssh \ && chmod 400 ~/.ssh/* \ && chmod 644 ~/.ssh/known_hosts \ && chmod 644 ~/.ssh/*.pub
    
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.