在公司這樣的局域網環境中,向要走網絡必須走HTTP代理出去。不能直接訪問外面的服務,所以這樣安全了些,但是也提供了不便的地方。因此需要設置一些代理才能使用。

常用的代理有:

  • HTTP、HTTPS代理 許多程序支持http代理
  • SOCKS代理 不是所有的程序都支持socks代理,但是常用的軟件都支持

github上的倉庫支持ssh、https、git三種協議的chekout(clone)操作。

生成SSH Key

參考http://www.chenyudong.com/archives/ssh-using-private-public-key-no-password.html進行SSH密鑰的生產

git使用http訪問

github上可以使用https進行訪問。

1
$ git config --global http.proxy http: //web-proxy .oa.com:8080

但是這樣可以clone了。但是如果要push代碼,那就麻煩了。每次都需要輸入密碼。

git使用ssh進行訪問

使用ssh協議不僅可以訪問github,還可以訪問我們自己的git私有倉庫,可以參考文章通過SSH創建私有git倉庫

首先,Windows用戶先下載一個mysgit客戶端,下個portable版的就好了,https://github.com/msysgit/msysgit/releases里面有git程序。Linux用戶跳過。

第二步,配置ssh。Windows用戶運行mysgit中的git-bash.bat來啟動終端。編輯vim ~/.ssh/config ,將下面的內容寫入到文件中

1
2
3
4
Host github.com *.github.com
     ProxyCommand connect -H web-proxy.oa.com:8080 %h %p   #設置代理
     IdentityFile ~/. ssh /privatekey/id_rsa .github
     User git

ProxyCommand說明了設置代理,其中connect是個程序,Windows用戶下載了mysgit,里面有這個程序,Linux用戶可能沒有,需要安裝sudo apt-get install connect-proxy

如果你使用corkscrew,那么解壓縮附件,把corkscrew.exe和cygwin1.dll拷貝到mysgit的bin目錄中。附:corkscrew.zip

第三步,測試

1
2
ssh -T git@github.com
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

 

轉自:http://www.chenyudong.com/archives/use-git-or-github-in-company-local-net.html