记住 WSL 中的 git 密码

Remember git passphrase in WSL

我 运行 Windows 10 与 WSL。我在一台计算机上有所需的行为,但无法在其他地方复制。这就是我所追求的:

  1. 我第一次使用我的 ssh 密钥 运行 远程 git 命令,git 提示我输入密码
  2. 以后没有提示,包括在新终端windows(我用的是ConEmu)
  3. 当所有控制台windows关闭后,回到#1

我尝试过的事情:

这是我在 ~/.gitconfig 中放入的示例: [credential] helper = "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

我已经从 here 安装了 git credential manager 并且还尝试了主要的 Git For Windows 安装作为替代。

如何鼓励它记住我的密码?

我找到答案了!

首先,通过将 eval $(ssh-agent) 添加到您的 .bash_profile.

,确保您始终拥有 ssh-agent 运行

然后将 AddKeysToAgent yes 添加到您的 ssh 配置:

touch ~/.ssh/config
chmod 600 ~/.ssh/config
echo "AddKeysToAgent yes" >> ~/.ssh/config

当您第一次使用 ssh 时,系统会提示您,但密码会自动添加到 ssh-agent,因此您无需再次输入,直到您结束会话并开始新的会话一.

我尝试了将 AddKeysToAgent yes 添加到 ~/.ssh/config 的选项,但它不会在终端的新选项卡之间保留它。

到目前为止我找到的最佳解决方案是执行以下操作:

sudo apt install keychain

使用终端查找您的主机名:

hostname

然后将以下内容添加到您的 ~/.bashrc~/.zshrc 文件中:

/usr/bin/keychain --nogui ~/.ssh/id_rsa
source $HOME/.keychain/YOUR-HOSTNAME-HERE-sh

现在,每次重新启动时,您都必须输入密码。但是您只需执行一次,直到您重新启动或终止 WSL。

如果您想使用您在 Windows 上已有的相同密钥,您可以按照此操作 post Sharing SSH keys between Windows and WSL 2

我在 WSL 2 上尝试了之前答案中的这两种方法(以及在其他地方找到的其他方法),但它们要么不起作用,要么有一些我无法忍受的警告。这对我有用。

安装keychain:

sudo apt install keychain

然后将以下行添加到您的 shell 的配置文件(可能 ~/.bashrc~/.zshrc):

eval `keychain --quiet --eval --agents ssh id_rsa`

现在您只需在启动 WSL 时输入密码!

感谢 Birk Holland this article