git - 让 ssh-agent 与从 Windows 命令 shell 运行的 git 一起工作

标签 git git-bash ssh-agent

我安装了带有 OpenSSH 的 msysgit。我正在连接到一个 gitosis 仓库。在 git bash 中,我创建了一个 .profile 文件,每次打开 git bash 时都会运行 ssh-agent(如果尚未运行),using this script

SSH_ENV=$HOME/.ssh/environment

function start_agent {
     echo "Initialising new SSH agent..."
     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > ${SSH_ENV}
     echo succeeded
     chmod 600 ${SSH_ENV}
     . ${SSH_ENV} > /dev/null
     /usr/bin/ssh-add;
}

# Source SSH settings, if applicable

if [ -f "${SSH_ENV}" ]; then
     . ${SSH_ENV} > /dev/null
     #ps ${SSH_AGENT_PID} doesn't work under cywgin
     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
         start_agent;
     }
else
     start_agent;
fi

我也在使用 git 扩展,它从 Windows 命令提示符运行 git 命令,而不是 git bash。因此,ssh 看不到正在运行的 ssh-agent。有可能解决这个问题吗?

最佳答案

我遇到了和你一样的问题,然后我尝试添加这段代码

#! /bin/bash 
eval `ssh-agent -s` 
ssh-add ~/.ssh/*_rsa

进入我的主目录中的文件 .bashrc。并且有效!

关于git - 让 ssh-agent 与从 Windows 命令 shell 运行的 git 一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3669001/

相关文章:

github - 无法在 Netbeans 12 中使用 Team -> Git -> Clone 向导来使用 SSH 连接到 github 存储库

git - 将远程分支 merge 到另一个本地分支

bash - bash_profile 中的别名自行执行

bash - 我的 .bashrc 文件未在 Git Bash 启动时执行 (Windows 7)

git jenkins scm 插件权限被拒绝

使用 forward_agent 选项 : "Error reading response length from authentication socket." 从 Windows 部署 Capistrano

git - kdiff3 完全从远程选择文件

linux - 运行 "git svn"需要安装哪些依赖项才能正常运行?

git - 将具有公共(public)主干的大型 SVN 存储库迁移到 Git

windows - 如何为 Git-Bash 设置 16 种终端颜色?