将 linux ssh 配置语法翻译成 PuTTY 和 Git

Translate linux ssh config syntax to PuTTY and Git

我必须使用代理才能从我的计算机连接到外部服务器。我从那里通过 ssh 连接到远程服务器,然后跳转到最终的 gitlab 服务器,这样我就可以做 git 事情了。

总结:个人电脑 -> 内部服务器(代理) -> 远程服务器 -> 远程 Git实验室服务器 === 现在我应该可以使用 Git/SourceTree/etc 做 "git stuff".

我已经使用下面的说明在 Ubuntu 上运行(无需通过代理),但我需要在 Windows 上使用此功能(必须通过代理)因此油灰。 website 非常接近地描述了我正在做的事情。

我得到的 linux 不考虑代理的说明如下:

  1. 创建以下 ~/.ssh/config 文件:

    Host gitlab.TEMP.com
     User <your user id>
     ProxyCommand nc -x localhost:5555 %h %p
    
  2. 创建 ssh 隧道:

    ssh -D 5555 <your user id>@gitlab.TEMP.com
    
  3. 在浏览器上调整 Socks 代理(这是在浏览器中查看 gitlab 所必需的。在您的非默认浏览器 (Explorer/Mozilla) 中执行此操作将无法使用此浏览器搜索互联网)

    localhost:5555
    
  4. 在连接的浏览器中登录 Gitlab 并添加 rsa 对信息

  5. 克隆存储库

    git clone git@gitlab.TEMP.com:<your user id>/<project>.git
    

重要提示:我已经能够通过代理访问远程 gitlab 服务器以查看 gitlab 存储库(即步骤 1-4 加上缺少的代理步骤)但是我无法让 Git(通过 Git Bash 或 SourceTree)连接到存储库(第 5 步)。我收到错误:

ssh: connect to host gitlab.TEMP.com port 22: Connection refused
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

不胜感激,putty界面图片送10金星! :) 提前致谢。

通过其他一些不在 Stack Overflow 上的很棒的人的一些输入,我已经能够成功连接并发挥 Git 魔力。下面的图片是我唯一需要用腻子做的事情。此解决方案适用于 Git Bash 和 SourceTree。

在“会话”选项卡中:

插入主机名,使用端口 22 和 select SSH。

在“代理”选项卡中:

使用适当的代理类型、主机名和端口。此信息取决于您的设置。我使用的代理是 HTTP 类型。

隧道选项卡:

确保 "Local ports accept connnections from other hosts" 框是 checked.Add 具有源端口的本地主机。我选择了 2000,但不确定这是否重要。还要添加动态 5555。这使我可以在浏览器中查看 Gitlab 服务器站点并设置 rsa 密钥(请参阅原始问题中的步骤 3)。

您现在应该可以通过浏览器访问 gitlab。如果您的 rsa 密钥对已设置,则转到您最喜欢的 Git 应用程序或 Git bash 并输入以下内容以在当前工作目录中克隆 repo:

git clone ssh://git@localhost:2000/PROJECT.git

您可能会收到 yes/no 问题的提示(键入 'yes' 然后按回车键)和您的 rsa 关键词。然后应该创建本地克隆。

希望这对你有用,就像对我一样!