将linux ssh配置语法转换为PuTTY和Git

时间:2016-06-28 21:52:09

标签: git ssh gitlab putty

我必须使用代理才能从我的计算机进入外部服务器。从那里我ssh到一个远程服务器,然后跳到最后的gitlab服务器,所以我可以做git东西。

摘要:个人电脑 - >内部服务器(代理) - >远程服务器 - >远程Gitlab服务器===现在我应该可以使用Git / SourceTree / etc来做“git stuff”。

我已经使用下面的说明在Ubuntu上工作了(无需通过代理),但我需要在Windows上使用此功能(必须通过代理)因此PuTTY。这个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 Proxy(这只是在浏览器中查看gitlab所必需的。在非默认浏览器(Explorer / Mozilla)中执行此操作,因为您将无法使用此功能在Internet上搜索浏览器)

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

  5. 克隆存储库

    git clone git@gitlab.TEMP.com:<your user id>/<project>.git
    
  6. 重要提示:我已经能够通过代理和远程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.
    

    想法和建议将不胜感激,腻子界面的图片会给你10颗金星! :)提前谢谢。

1 个答案:

答案 0 :(得分:2)

来自其他一些不在Stack Overflow上的精彩人物的输入,我已经能够成功连接并运行Git魔法。下面的图片是我需要用腻子做的唯一事情。这个解决方案适用于Git Bash和SourceTree。

在会话标签中:

插入主机名,使用端口22,然后选择SSH。

Session Tab

在代理选项卡中:

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

Proxy Tab

隧道标签:

确保选中“本地端口接受来自其他主机的连接”框。使用源端口添加本地主机。我选择2000但不确定是否重要。添加动态5555也是如此。这允许我在浏览器中查看Gitlab服务器站点并设置rsa密钥(参见原始问题中的步骤3)。

Tunnels Tab

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

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

你可能会得到一个是/否问题的提示(输入'是'然后按回车键)和你的rsa关键短语。然后应该创建本地克隆。

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