我使用 WSL 运行 Windows 10。我在一台计算机上有所需的行为,但无法在其他地方复制。这就是我所追求的:
我尝试过的事情:
eval $(ssh-agent)
,然后使用 ssh-add
;它会记住密码,但如果我把它放在我的 ~/.bash_profile
中,那么它会提示我打开每个新的控制台窗口,并且我打开了很多 - 其中许多我没有使用 git。 git config --global credential.helper
设置为 cache
或 store
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 安装作为替代方案。
我怎样才能鼓励它记住我的密码?
我尝试了将
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 上已有的相同密钥,可以关注这篇文章 在 Windows 和 WSL 2 之间共享 SSH 密钥
我找到答案了!
首先,将
ssh-agent
添加到 eval $(ssh-agent)
中,确保 .bash_profile
始终运行。
然后将
AddKeysToAgent yes
添加到您的 ssh 配置中:
touch ~/.ssh/config
chmod 600 ~/.ssh/config
echo "AddKeysToAgent yes" >> ~/.ssh/config
首次执行 ssh 操作时,您会收到提示,但密码将自动添加到
ssh-agent
中,因此您无需再次输入密码,直到结束会话并开始新会话为止。