在svn+中作为用户名的电子邮件地址;ssh登录?

在svn+中作为用户名的电子邮件地址;ssh登录?,svn,login,ssh,Svn,Login,Ssh,我需要允许使用电子邮件地址作为用户名访问svn存储库。通过ssh将电子邮件地址“@”更改为“$”,我可以毫无问题地登录到服务器,如下所示: 不幸的是,同样的方法不适用于svn+ssh。这让我一事无成: svn ls svn+ssh://user.name$mydomain.com@mydomain.com/home/accountname/data/svn/repos 有人知道这通常是怎么做的吗?您使用的shell不是正在替换$s吗?SVN只有用户名而不是用户+电子邮件进行身份验证。我想这是行

我需要允许使用电子邮件地址作为用户名访问svn存储库。通过ssh将电子邮件地址“@”更改为“$”,我可以毫无问题地登录到服务器,如下所示:

不幸的是,同样的方法不适用于svn+ssh。这让我一事无成:

svn ls svn+ssh://user.name$mydomain.com@mydomain.com/home/accountname/data/svn/repos

有人知道这通常是怎么做的吗?

您使用的shell不是正在替换$s吗?SVN只有用户名而不是用户+电子邮件进行身份验证。我想这是行不通的。

正如前面的答案所说,如果您在UNIX机器上,您的shell程序可能会试图替换$,就像它是一个变量一样。尝试通过在“$”符号前面包含反斜杠来转义它,如下所示:

svn ls svn+ssh://user.name\$mydomain.com@mydomain.com/home/accountname/data/svn/repos
或者,如果在URL周围使用单引号,则BASH或您正在使用的任何shell都不应尝试替换$

svn ls 'svn+ssh://user.name$mydomain.com@mydomain.com/home/accountname/data/svn/repos'

由于它是一个URL,您是否尝试过URL编码@符号?我不知道这是否可行,但您可以尝试
user.name%40mydomain.com

我一直很小心地在同一个shell中以相同的方式创建ssh连接和svn连接,因此我希望凭据也能得到相同的处理。我试着删除“@mydomain.com”(加上许多其他变体),得到了相同的结果。问题是,在我的主机上,用户名是一个电子邮件地址。我只是不知道身份验证是由svn管理的,还是直接传递给ssh或者介于两者之间的什么东西。哈!URL编码不起作用,但所需的是%(而不是$)。因此,登录字符串实际上是:svn ls svn+ssh://user.name%mydomain.com@mydomain.com/home/accountname/data/svn/repos如果没有这个建议,我是不会发现的。谢谢奇怪的我想不到您可以用这些字符中的任何一个($ssh或%svn+ssh)替换@字符。事实上,我认为SSH命令中的$mydomain会被一个空字符串替换,因此在这种情况下,您将使用user.name.com。但是,嘿,如果它有效的话,太好了!
svn ls 'svn+ssh://user.name$mydomain.com@mydomain.com/home/accountname/data/svn/repos'