【发布时间】:2011-04-09 19:11:53
【问题描述】:
我用 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。有可能解决这个问题吗?
【问题讨论】:
-
关于信息:我没有设法让 ssh-agent 在 Windows 10 上使用 git bash 2.x(遵循 github guide)可靠地工作,但我在使用 putty 时运气更好。见this amazing answer: "Why git can't remember my passphrase under Windows"