gpt4 book ai didi

git - 如何通过苛刻的代理使用 GitHub?

转载 作者:IT王子 更新时间:2023-10-29 01:15:18 30 4
gpt4 key购买 nike

鉴于以下限制,我如何在 Windows 和 Unix 中使用 GitHub?

  • 所有对互联网的访问都仅限于代理
  • 代理只允许端口 80 和 443 上的连接
  • CONNECT 方法仅对 443 启用
  • 需要代理身份验证(NTLM 或基本)

最佳答案

查看 “Using Github Through Draconian Proxies (Windows And Unix)”作者 Jeff Tchang(以前可从 another location 获得),其中包括针对 Windows 和 Unix 平台的说明,总结如下。

Unix

  1. 下载 Git。
  2. 下载并安装 corkscrew .
  3. 编辑或创建文件 ~/.ssh/config 并放入以下内容:

    ProxyCommand /usr/bin/corkscrew proxy.example.com 443 %h %p ~/.ssh/myauth

    Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile "/media/truecrypt1/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes

    Host ssh.github.com
    User git
    Port 443
    Hostname ssh.github.com
    IdentityFile "/media/truecrypt1/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
  4. 如果一切设置正确,您应该能够运行 ssh github.com 并查看

    Hi user! You’ve successfully authenticated, but GitHub does not provide shell access.
    Connection to github.com closed.

    如果这不起作用,您可以运行 ssh ssh.github.com 并获得完全相同的结果。如果第一个命令不起作用,则意味着您使用的代理阻止了端口 22 上的 CONNECT。几乎没有代理阻止端口 443 上的 CONNECT,因为您需要它用于 SSL。

window

  1. 下载msysgit .一些设置:
    • “从 Windows 命令提示符运行 Git”
    • “使用OpenSSH”(这个很重要)
    • 选择你的行尾
  2. 下载connect.c .这个工具值得拥有自己的帖子,主要是因为它非常简单。它反射(reflect)了开源工具 corkscrew,用于通过代理进行隧道传输。是的,该工具的名称确实叫做“connect.c”。对于 Windows 用户,可以使用预编译的二进制文件。我将 connect.exe 放在 C:\Windows\connect.exe 中。
  3. 决定您是喜欢使用 Windows cmd.exe 还是 Cygwin 风格的 shell。或两者兼而有之。
  4. 设置 Cygwin Git bash shell。

    对于 Cygwin 风格的 shell,启动 Git 图标并编辑文件 ~/.ssh/config 并确保该文件没有扩展名。将以下内容放入该文件,并注意路径是如何指定的。

    ProxyCommand /c/windows/connect.exe -H username@proxy.example.com:443 %h %p

    Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile "/c/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes

    Host ssh.github.com
    User git
    Port 443
    Hostname ssh.github.com
    IdentityFile "/c/Keys/GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes
  5. 设置 Windows cmd.exe 外壳。

    假设您不喜欢 Git Bash shell。您更喜欢 cmd.exe 解释器。

    • 转到位于 C:\Documents and Settings\.ssh\config 的配置文件
    • 复制一份或制作一份新的。我调用了我的 config-windows

    将以下内容放入文件中,再次注意路径分隔符和样式。

    ProxyCommand C:/Windows/connect.exe -H username@proxy.example.com:443 %h %p

    Host github.com
    User git
    Port 22
    Hostname github.com
    IdentityFile "C:\Keys\GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes

    Host ssh.github.com
    User git
    Port 443
    Hostname ssh.github.com
    IdentityFile "C:\Keys\GitHubKey.private"
    TCPKeepAlive yes
    IdentitiesOnly yes

有关详细信息,请参阅 the full blog post .

关于git - 如何通过苛刻的代理使用 GitHub?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1040089/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com