我必须使用代理才能从我的计算机进入外部服务器。从那里我ssh到一个远程服务器,然后跳到最后的gitlab服务器,所以我可以做git东西。
摘要:个人电脑 - >内部服务器(代理) - >远程服务器 - >远程Gitlab服务器===现在我应该可以使用Git / SourceTree / etc来做“git stuff”。
我已经使用下面的说明在Ubuntu上工作了(无需通过代理),但我需要在Windows上使用此功能(必须通过代理)因此PuTTY。这个website非常接近我正在做的事情。
我得到的linux指令没有考虑代理如下:
创建以下〜/ .ssh / config文件:
Host gitlab.TEMP.com
User <your user id>
ProxyCommand nc -x localhost:5555 %h %p
创建一个ssh隧道:
ssh -D 5555 <your user id>@gitlab.TEMP.com
在浏览器上调整Socks Proxy(这只是在浏览器中查看gitlab所必需的。在非默认浏览器(Explorer / Mozilla)中执行此操作,因为您将无法使用此功能在Internet上搜索浏览器)
localhost:5555
在连接的浏览器中登录Gitlab并添加rsa对信息
克隆存储库
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.
想法和建议将不胜感激,腻子界面的图片会给你10颗金星! :)提前谢谢。
答案 0 :(得分:2)
来自其他一些不在Stack Overflow上的精彩人物的输入,我已经能够成功连接并运行Git魔法。下面的图片是我需要用腻子做的唯一事情。这个解决方案适用于Git Bash和SourceTree。
在会话标签中:
插入主机名,使用端口22,然后选择SSH。
在代理选项卡中:
使用适当的代理类型,主机名和端口。此信息取决于您的设置。我使用的代理是HTTP类型。
隧道标签:
确保选中“本地端口接受来自其他主机的连接”框。使用源端口添加本地主机。我选择2000但不确定是否重要。添加动态5555也是如此。这允许我在浏览器中查看Gitlab服务器站点并设置rsa密钥(参见原始问题中的步骤3)。
您现在应该可以通过浏览器访问gitlab了。如果设置了rsa密钥对,则转到您喜欢的Git应用程序或Git bash并输入以下内容以克隆当前工作目录中的repo:
git clone ssh://git@localhost:2000/PROJECT.git
你可能会得到一个是/否问题的提示(输入'是'然后按回车键)和你的rsa关键短语。然后应该创建本地克隆。
希望这对你有用,就像它对我有用一样!