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沒什麼技術含量,轉載吧,只保留一份引用。另外吐槽一下“度娘”是在是太屎了,“谷歌”還是依然很強大!!

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