Con*_*nan 19 git ssh-agent windows-subsystem-for-linux
我使用 WSL 运行 Windows 10。我在一台计算机上有所需的行为,但无法在其他地方复制。这是我所追求的:
我尝试过的事情:
eval $(ssh-agent), 后跟ssh-add; 它会记住密码,但如果我把它放在我的~/.bash_profile那么它会提示我输入每个新的控制台窗口,并且我打开了很多 - 其中许多我没有使用 git。git config --global credential.helper为cache或storebash.exe和wsl.exe得到git-credentials-manager.exe工作这是我放入我的内容的示例 ~/.gitconfig:
[credential]
helper = "/mnt/c/Program\\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"
我已经安装了git credential manager从这里并且还尝试了主要的 Git For Windows 安装作为替代。
我怎样才能鼓励它记住我的密码?
小智 20
我尝试了添加AddKeysToAgent yes到的选项,~/.ssh/config但它没有将它保留在终端上的新选项卡之间。
到目前为止,我找到的最佳解决方案是执行以下操作:
sudo apt install keychain
Run Code Online (Sandbox Code Playgroud)
使用终端查找您的主机名:
hostname
Run Code Online (Sandbox Code Playgroud)
然后将以下内容添加到您的~/.bashrc或~/.zshrc文件中:
/usr/bin/keychain --nogui ~/.ssh/id_rsa
source $HOME/.keychain/YOUR-HOSTNAME-HERE-sh
Run Code Online (Sandbox Code Playgroud)
现在,每次重新启动时,您都必须输入密码。但是您只需执行一次,直到您重新启动或终止 WSL。
如果你想使用你在 Windows 上已经拥有的相同密钥,你可以按照这篇文章在 Windows 和 WSL 2 之间共享 SSH 密钥
Con*_*nan 16
我找到了答案!
首先,ssh-agent通过添加eval $(ssh-agent)到您的.bash_profile.
然后添加AddKeysToAgent yes到您的 ssh 配置中:
touch ~/.ssh/config
chmod 600 ~/.ssh/config
echo "AddKeysToAgent yes" >> ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)
当您第一次执行 ssh 时,您会收到提示,但密码短语会自动添加到 ssh 中,ssh-agent因此您不必再次输入,直到您结束会话并开始新的会话。
我在 WSL 2 的先前答案(以及其他地方找到的其他答案)中尝试了这两种方法,但它们要么不起作用,要么有我无法忍受的警告。这对我有用。
安装钥匙串:
sudo apt install keychain
Run Code Online (Sandbox Code Playgroud)
然后将以下行添加到您的 shell 的配置文件(可能~/.bashrc或~/.zshrc):
eval `keychain --quiet --eval --agents ssh id_rsa`
Run Code Online (Sandbox Code Playgroud)
现在,您只需在启动 WSL 时输入密码即可!
感谢伯克·霍兰德 (Birk Holland)撰写的这篇文章。