git - 记住 WSL 中的 git 密码
问题描述
我使用 WSL 运行 Windows 10。我在一台计算机上具有所需的行为,但无法在其他地方复制。这就是我所追求的:
- 第一次使用 ssh 密钥运行远程 git 命令时,git 提示我输入密码
- 随后没有提示,包括在新的终端窗口中(我使用 ConEmu)
- 当所有控制台窗口都关闭时,回到#1
我尝试过的事情:
- 使用
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"
我已经git credential manager
从这里安装了,并且还尝试了主要的 Git For Windows 安装作为替代方案。
我如何鼓励它记住我的密码?
解决方案
我尝试了添加AddKeysToAgent yes
到的选项,~/.ssh/config
但它没有保留在终端上的新选项卡之间。
到目前为止,我发现的最佳解决方案是执行以下操作:
sudo apt install keychain
使用终端查找您的主机名:
hostname
然后将以下内容添加到您的~/.bashrc
or~/.zshrc
文件中:
/usr/bin/keychain --nogui ~/.ssh/id_rsa
source $HOME/.keychain/YOUR-HOSTNAME-HERE-sh
现在,每次重新启动时,您都必须输入密码。但是您只需执行一次,直到您重新启动或终止 WSL。
如果您想使用 Windows 上已有的相同密钥,您可以关注这篇文章在 Windows 和 WSL 2 之间共享 SSH 密钥
推荐阅读
- javascript - 如果我必须在测试中模拟类注入依赖项,如何测试它?
- django - 在 jinja 模板中设置 Dataframe 索引
- python - Python中的文件和硒不可点击元素
- python - Networkx:来自熊猫数据框的网络图
- python - 我想更新字典。但它的生成,RuntimeError: dictionary changed size during iteration
- python - 将记录添加到 MySQL 后立即更新 Flask 页面
- android - 如何使用 MockK 模拟构建器以使构建器函数可交换?
- flutter - showBottomSheet 看不到 currentState
- inheritance - 视图控制器模型的继承
- flutter - 在构建错误期间调用了我的 setState() 或 markNeedsBuild()。你能帮我么?