我运行Ubuntu 12.04.2 LTS作为虚拟机,并且在前面也有vShield,启用了防火墙和一些NAT修改。 在我的VPSconfiguration中还有其他的机器,但这并不重要。 重要的是,我将Ubuntu上的SSH端口从22更改为765,在vShield上我将端口转换从424更改为765.防火墙具有SSH(和SVN)的所有必要权限。
所以我让SSH连接像这样
kopparberg:Webpage marek$ ssh marko@91.***.***.69 -p 424
它就像一个魅力。
哪里有问题? 我试图在Ubuntu上设置SVN服务器,遵循本指南http://odyniec.net/articles/ubuntu-subversion-server/ 。
如果通过SVN协议检出我的资源库“网页”
kopparberg:Webpage marek$ svn checkout svn://91.***.***.69/Webpage --username svnuser
它的工作原理应该如此。
我真正想要做的是结算svn + ssh协议。 我尝试了许多不同的方式,但没有成功
kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69:424/usr/local/svn/repos/Webpage --username svnuser svn: To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file. svn: Network connection closed unexpectedly
另一个尝试…
kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69/usr/local/svn/repos/Webpage -p 424 --username svnuser svn: invalid option character: p Type 'svn help' for usage.
我还将ssh = ssh -p 424添加到/user/marek/.subversion/config文件中。
kopparberg:Webpage marek$ svn checkout svn+ssh://91.***.***.69/usr/local/svn/repos/Webpage --username svnuser marek@91.***.***.69's password Permission denied, please try again.:
没有我的密码是正确的。
是否有可能通过自定义端口签署svn + ssh协议而不修改configuration文件?
编辑:我发现,我应该使用SSH用户,而不是SVN用户当然。 但是我完全错误地使用它。 而不是--username子命令我应该把我的用户名前面的IP地址。
kopparberg:Webpage marek$ svn checkout svn+ssh://marko@91.***.***.69/usr/local/svn/repos/Webpage
这看起来好多了,它的工作原理! 我还在search的是一个解决scheme,我不需要在签出前编辑configuration文件。 换句话说,我想改变SSH端口。
我想我在这里的晚会有点晚,但是我遇到了同样的问题,并且解决了。
首先,确定您的新的默认SSH端口。 这通常会影响SSH(即:当你想通过SSH使用命令行,putty等连接到服务器时,只能调用SVN的端口,除非你想调用多个SSHD服务器实例,这超出了范围的原始问题)。
所以,假设如下:
客户端:
无论如何,首先在客户端机器上修改<〜/ .subversion / config>,在标题为[tunnels]的行下,input以下行:
ssh = ssh -p 123456
服务器端:
首先,您需要设置新的默认SSH端口。 在你的SVN服务器上,编辑(在Ubuntu的情况下)你的SVN服务器configuration文件(注意“SSH”后面的'd'):sudo vi / etc / ssh / sshd_config
查找以“端口”(默认为“端口22”)开头的行,并将“22”改为“123456”。 保存并closures文件。 现在重新启动SSHD服务器:sudo restart ssh
假设你的SVN设置正如你上面已经描述的那样工作,你就设置好了。 如果你坚持翻译端口,而不是像单端口转发直通规则那样保持原样,只要改变服务器端使用的SSH端口,然后设置。 我已经通过以下方式成功地从局域网外的客户端testing了上述设置:
svn --username megaman ls svn+ssh://[email protected]/usr/local/svn/repos/private
希望这可以帮助!