如何通过苛刻的代理使用GitHub?
鉴于以下限制,如何从Windows和Unix使用GitHub如何通过苛刻的代理使用GitHub?,git,github,Git,Github,鉴于以下限制,如何从Windows和Unix使用GitHub 对internet的所有访问仅限于代理 代理仅允许在端口80和443上进行连接 仅为443启用了连接方法 需要代理身份验证(NTLM或基本) 请参阅Jeff Tchang的一篇文章(以前可从获得),其中包括Windows和Unix平台的说明,总结如下 Unix 下载Git 下载并安装 编辑或创建文件~/.ssh/config,并放置以下内容: 如果一切设置正确,您应该能够运行ssh github.com并查看 嗨,用户!您已成功通
- 对internet的所有访问仅限于代理
- 代理仅允许在端口80和443上进行连接
- 仅为443启用了连接方法
- 需要代理身份验证(NTLM或基本)
~/.ssh/config
,并放置以下内容:
ssh github.com
并查看
嗨,用户!您已成功通过身份验证,但GitHub不提供shell访问。与github.com的连接已关闭 如果这不起作用,您可以运行
ssh.github.com
并获得完全相同的结果。如果第一个命令不起作用,则表示您正在使用阻止端口22上连接的代理。几乎没有代理阻止端口443上的连接,因为SSL需要它- “从Windows命令提示符运行Git”
- “使用OpenSSH”(这一点非常重要)
- 选择你的行尾
connect.exe
放入C:\Windows\connect.exe
中cmd.exe
还是Cygwin样式的shell。或者两者兼而有之~/.ssh/config
,确保该文件没有扩展名。将以下内容放入该文件中,并注意如何指定路径
cmd.exe
shell
假设您不喜欢Git Bash shell。您更喜欢cmd.exe解释器
- 转到您的配置文件
C:\Documents and Settings\.ssh\config
- 复制一份或制作一份新的。我调用了我的
config窗口
有关详细信息,请参见。我的场景与Jeff Tchang的略有不同(但基于他的帖子),但可能会有所帮助 我们所有的工作场所/公司互联网访问都是通过非认证代理进行的。我可以从中克隆,但不能推送到github:running
git push -u origin master
会回来吗
ssh: connect to host github.com port 22: Operation timed out
fatal: The remote end hung up unexpectedly
基于和,我能够下载/安装开塞钻并将以下内容添加到我的~/.ssh/config中:
Host github.com
User git
Port 22
Hostname github.com
TCPKeepAlive yes
IdentitiesOnly yes
ProxyCommand /usr/local/bin/corkscrew proxy.<my-workplace>.com 8080 %h %p
Host github.com
用户git
端口22
主机名github.com
是的
唯一相同的是
ProxyCommand/usr/local/bin/corkscrew proxy..com 8080%h%p
需要注意的几点:
- 我将我的工作场所/公司私钥也用于GitHub:如果不使用,则需要添加一行“IdentityFile”
- 与Jeff Tchang不同(多亏了mtu.net),我不需要在proxy命令行的末尾使用“~/.ssh/myauth”
- 我不需要设置ssh.github.com主机部分
希望这些帮助。[由于我对上面给出的第一个答案的添加没有在四天内获得批准,因此我将其放在这里。] 请注意,
corkscrew
和connect
以及标准Unix命令nc
仅支持基本身份验证(不安全地传输密码)。此外,还支持摘要身份验证 如果您的代理需要NTLM身份验证,则所有这些命令可以很好地结合使用,如下所示: 选择
cntlm
将侦听的本地端口(如下面示例中的8080)
(使用代理执行用户身份验证并转发任何
进一步的包到/从代理),设置端口等(例如,在
/etc/cntlm.conf
),并使用以下命令代替上面给出的PROXY命令(插入相应的端口号):
ProxyCommand螺旋塞127.0.0.1 8080%h%p
或
ProxyCommand connect-H 127.0.0.1:8080%H%p
或
ProxyCommand nc-X connect-X 127.0.0.1:8080%h%p
或
ProxyCommand隧道身份验证-p 127.0.0.1:8080-r%h:%p
我想补充一点,对于NTLM身份验证,您可以使用CNTLM。大多数公司代理都允许基本身份验证,但有些代理确实非常严格,只允许NTLM。请在此处找到:
connect.exe
作为msysgit的一部分安装。它包括在我的书包里。你能帮我一下吗-
git push -u origin master
ssh: connect to host github.com port 22: Operation timed out
fatal: The remote end hung up unexpectedly
Host github.com
User git
Port 22
Hostname github.com
TCPKeepAlive yes
IdentitiesOnly yes
ProxyCommand /usr/local/bin/corkscrew proxy.<my-workplace>.com 8080 %h %p