gpt4 book ai didi

git push 在 bash 中使用 ssh-agent 而不是 gui

转载 作者:太空狗 更新时间:2023-10-29 13:36:55 25 4
gpt4 key购买 nike

使用 git for windows (git-scm.com) 和脚本,我可以让 Bash 停止询问密码,但我似乎无法从 git GUI 中删除密码提示。

远程的 url 使用的是 ssh 链接(见下文),所以我很确定这不是问题所在。但我不是 git 或 SSH 方面的专家..

git@gitlab.com:repo

已使用提供的密码创建 SSH key (ED25519),并将公钥添加到托管帐户。 SSH key 存储在典型位置 C:\Users\<user>\.ssh\id_ed25519 .当点击 Help->Show SSH Key在 GUI 中,它显示了我正在使用的 ssh key 。 ssh-agent 在后台运行,ssh key 已通过以下设置添加到 ssh-agent。

设置 ssh-agent 我使用了提供的代码 here (在下面复制并粘贴以供引用)创建 .bashrc C:\Users\<user> 下的文件小路。一切似乎都在 bash 提示符下按预期运行,但不是 Git GUI。

env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
(umask 077; ssh-agent >| "$env")
. "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2= agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
agent_start
ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
ssh-add
fi

unset env

对我来说,在执行推送、获取或任何其他相关的远程功能时,Git GUI 似乎没有使用 ssh-agent。我在设置 ssh-agent 时是否遗漏了一个步骤,.bashrc脚本和/或 GUI 来完成删除密码提示?还是有其他事情发生?

非常感谢任何帮助,提前致谢

最佳答案

.bashrc 在您启动 Git Bash 时运行。这只会影响 bash 环境,但不会对整个 Windows 执行任何操作。当您运行 GUI 时,.bashrc 中的所有设置均无效。我在我的 Windows 笔记本电脑上使用 IntelliJ 中的 Git 集成,但仍然没有弄清楚如何使用我的 SSH key 。我目前打开 Git Bash 以 pull 、推送或与远程交互的任何其他内容。

关于git push 在 bash 中使用 ssh-agent 而不是 gui,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56605016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com