Git在http代理中使用ssh

公司内外统一使用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 [email protected] #奶奶的连不上啊,我去年买了个真皮包

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

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的问题。

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

  1. 每次启动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


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

声明

博客尽量转载,我看到过好多复制黏贴的博客实在是错误多多发火,copy没什么技术含量,转载吧,只保留一份引用。另外吐槽一下“度娘”是在是太屎了,“谷歌”还是依然很强大!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章