记住 WSL 中的 git 密码
Remember git passphrase in WSL
我 运行 Windows 10 与 WSL。我在一台计算机上有所需的行为,但无法在其他地方复制。这就是我所追求的:
- 我第一次使用我的 ssh 密钥 运行 远程 git 命令,git 提示我输入密码
- 以后没有提示,包括在新终端windows(我用的是ConEmu)
- 当所有控制台windows关闭后,回到#1
我尝试过的事情:
- 使用
eval $(ssh-agent)
,然后是ssh-add
;它会记住密码,但如果我把它放在我的 ~/.bash_profile
中,它会提示我输入每个新控制台 window,我打开了很多 - 其中很多我没有使用 git 英寸
- 将
git config --global credential.helper
设置为cache
或store
- 一切here
- 使用
bash.exe
和 wsl.exe
让 git-credentials-manager.exe
工作
这是我在 ~/.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。
我 运行 Windows 10 与 WSL。我在一台计算机上有所需的行为,但无法在其他地方复制。这就是我所追求的:
- 我第一次使用我的 ssh 密钥 运行 远程 git 命令,git 提示我输入密码
- 以后没有提示,包括在新终端windows(我用的是ConEmu)
- 当所有控制台windows关闭后,回到#1
我尝试过的事情:
- 使用
eval $(ssh-agent)
,然后是ssh-add
;它会记住密码,但如果我把它放在我的~/.bash_profile
中,它会提示我输入每个新控制台 window,我打开了很多 - 其中很多我没有使用 git 英寸 - 将
git config --global credential.helper
设置为cache
或store
- 一切here
- 使用
bash.exe
和wsl.exe
让git-credentials-manager.exe
工作
这是我在 ~/.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。