您的位置:首页 > 理论基础 > 计算机网络

Git在http代理中使用ssh

2013-10-30 14:12 309 查看
公司内外统一使用192.168.16.178:8080的http代理,导致git的21端口无法在命令行连接到github上,于是想到使用http代理ssh,废话不多说了

,下面写一下我的做法

安装Git

这个具体怎么做在这里找



生成密匙

ssh-keygen -t rsa -C 'your email' #生成两个文件 id_rsa id_rsa.pub


把其中的后缀是pub的文件内容以文本方式打开放到github的ssh keys中

要在本地导入你自己的私匙id_rsa导入到ssh-agent中方法
eval $(ssh-agent) #一定要先执行这一句话否则会报出无法连接到agent server的错误
ssh-add XX # XX 刚刚生成的那个id_rsa文件的路径
到现在为止如果不是在代理环境下应该就直接可以开发git之旅了。
但是,但是,总有那么几个特殊的情况让你纠结

,我们就是不能使用22端口。

git -T git@github.com #奶奶的连不上啊,我去年买了个真皮包


现在请参考这么几篇篇博客

1.http://www.zeuux.com/blog/content/1226/ 按照他说的我是没有成功

2.https://github.com/jixiuf/org-mode-files/blob/master/git/git-proxy-on-windows.org  这是个大神

啊,解决了我的http代理连接ssh的问题。

下面我附上我遇到的问题以及它的解决方案

每次启动shell时都要启动一个ssh-agent然后才能使用其中的私匙,可以放到bash的启动的脚本中
# start the ssh agent
eval $(ssh-agent)

# import ssh key
RSA_PATH="/d/TortoiseGit/.ssh/rsa/"
for file in  `ls $RSA_PATH`
do
ssh-add $RSA_PATH"/"$file
done


“Warning:
Permanently added to the list of known hosts” message from Git
这种情况就是没加入主机的信任列表,google一下吧。
每次启动一个git-bash时都会新启动一个ssh-agent当启动多个时git-bash并且关闭之后ssh-agent会有多个进程仍然在运行着,下面附上解决方案
trap "kill $SSH_AGENT_PID" #在启动ssh-agent后面加上这么一句,每次退出git-bash事,输入quit或者exit时就会把该shell启动的ssh-agent杀掉。


声明

博客尽量转载,我看到过好多复制黏贴的博客实在是错误多多

,copy没什么技术含量,转载吧,只保留一份引用。另外吐槽一下“度娘”是在是太屎了,“谷歌”还是依然很强大!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git ssh http 代理