2014-01-23 31 views
5

我公司有阻止我ssh方式連接到服務器中刪除一個嚴厲的代理服務器,並因此阻止我使用github上。我花了最後一天在網絡上的例子,比如如何設置開瓶器通過嚴酷的代理連接到Github上

,但似乎沒有奏效。這裏是我的〜/ .ssh/config文件:

ProxyCommand /usr/local/bin/corkscrew proxy02.COMPANY_NAME.com 8080 %h %p 

Host github.com 
User git 
Port 22 
Hostname github.com 
IdentityFile "/Users/msnider/.ssh/id_rsa" 
IdentitiesOnly yes 
TCPKeepAlive yes 

Host ssh.github.com 
User git 
Port 443 
Hostname ssh.github.com 
IdentityFile "/Users/msnider/.ssh/id_rsa" 
IdentitiesOnly yes 
TCPKeepAlive yes 

這是我收到錯誤消息當我嘗試git pull --rebase

Proxy could not open connnection to github.com: Forbidden 
ssh_exchange_identification: Connection closed by remote host 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

我得到同樣的禁止錯誤時,我只是嘗試SSH到github.com,但我可以ssh到ssh.github.com如果我指定我的身份:

ssh -i ~/.ssh/id_rsa [email protected] 
Hi mattsnider! You've successfully authenticated, but GitHub does not provide shell access. 
Connection to ssh.github.com closed. 

沒有連接到代理服務器需要身份驗證。

我自己也嘗試設置http_proxyhttps_proxy環境變量:

http_proxy=http://proxy02.COMPANY_NAME.com:8080 
https_proxy=http://proxy02.COMPANY_NAME.com:8080 

人有一個想法,以什麼我做錯了,我怎麼能得到這個工作?謝謝。

回答

9

我終於想通了。我公司的代理服務器上的塊比80和443端口,其他所有的通信,所以我無法連接到GitHub上的端口22,我想我在網上找到的例子是改變從22到443的通信,但是他們沒有。

問題是與從所有的web例子的這部分代碼:

Host github.com 
User git 
Port 22 
Hostname github.com 
IdentityFile "/Users/msnider/.ssh/id_rsa" 
IdentitiesOnly yes 
TCPKeepAlive yes 

從代理服務器連接到github.com使用主機名github.com和端口22,其被阻止時,這說由我的代理人。通過改變github.com定義:

Host github.com 
User git 
Port 443 
Hostname ssh.github.com 
IdentityFile "/Users/msnider/.ssh/id_rsa" 
IdentitiesOnly yes 
TCPKeepAlive yes 

我終於可以連接到github上。