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

标签 git shell ssh command-prompt cmder

我正在使用 cmder运行 ConEmu在 Windows 8.1 上。

它有一个内置的 Git 功能,所以我可以在控制台中 pull/推 git 存储库(就像在 Linux 控制台上一样)

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

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

最佳答案

与以下 snipped SSH key 在 Cmder 启动期间添加,并且每个 session 只输入一次密码:

@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/config/user-profile.cmd在当前的 Cmder 版本中或到 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"

关于git - 允许代理转发使用 Cmder (ConEmu),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29231127/

相关文章:

git - Gerrit 项目未复制到 bitbucket,错误 : channel is not opened

shell - 在 shell 中删除文件每一行的字符

linux - 批量替换同一直接和子文件夹中的字符串

linux - Ansible wait_for 重启

git - 我应该使用什么工具将 git commit 拆分为多个?

git - 如何在 .gitconfig 中使用 ANSI 256 色

git - 如何在 Azure 应用服务中使用 GIT 为持续部署设置构建类型(发布/调试)

shell - 使用 golang 从命令行读取输入到 shell 脚本 exec

linux - 并排比较并显示两个文件

java - SSH 连接到 MySQL