使用Cmder(ConEmu)允许代理转发

5

我正在使用Cmder,在Windows 8.1上运行ConEmu

Cmder内置了Git功能,因此我可以像在Linux控制台上一样,在控制台中拉取/推送git存储库。

为了进行身份验证,我使用受密码保护的SSH私钥。如果我使用ConEmu执行git push,它会提示我输入密钥密码。我可以键入“start-ssh-agent”并输入我的密码一次,它将自动在该ConEmu窗口中对我进行身份验证,但是如果我关闭或打开另一个窗口,则需要再次运行该命令。

如何启动一个ssh-agent以在每个ConEmu窗口中验证我的密钥?


看起来你真的想要一个Linux系统 ;) 关于这个话题,你需要全局启动ssh-agent以使其在整个系统中可用。在Windows上可能会想到putty-agent之类的东西。 - hek2mgl
您可以创建启动任务(http://conemu.github.io/en/Tasks.html),在其中运行ssh-agent(http://conemu.github.io/en/SshAgent.html)并导出变量SSH_AGENT_PID和SSH_AUTH_SOCK到ConEmu及其控制台。 - Maximus
1个回答

5

通过以下 代码片段 ,可以在 Cmder 启动时添加 SSH 密钥,并且每个会话只需输入一次密码:

@echo off
ssh-agent | grep -v echo | sed -e "s/^/@set /" | sed -e "s/;.*$//" - > call.cmd
call call.cmd
del call.cmd
ssh-add "%HOME%\.ssh\id_rsa"
@echo on

将代码添加到当前Cmder版本的cmder/config/user-profile.cmd或旧版本的cmder/vendor/init.bat中。 编辑: 较新版本的cmder在user-profile.cmd中具有以下行,使用git执行相同操作:
:: uncomment this to have the ssh agent load when cmder starts
call "%GIT_INSTALL_ROOT%/cmd/start-ssh-agent.cmd"

1
截至最新的Cmder版本,需要更新的文件是 cmder\config\user-profile。这个片段仍然非常有效! - mcalcote

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接