SVN服务器与svn + ssh协议通过自定义端口

我运行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服务器实例,这超出了范围的原始问题)。

所以,假设如下:

  • 我们希望通过端口123456完成所有的事情
  • 您的服务器的IP地址是192.168.1.100
  • 你的路由器/防火墙已经打开了端口123456
  • 您的路由器/防火墙已设置端口转发为外部端口123456路由到内部端口123456为主机192.168.1.100

客户端:

无论如何,首先在客户端机器上修改<〜/ .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 

希望这可以帮助!