2010-05-10 3 views
6

Мне нужно разрешить доступ к репозиторию svn, используя адреса электронной почты в качестве имени пользователя. Я не могу войти на сервер через SSH без проблем путем изменения адреса электронной почты «@» на «$», как так:Адрес электронной почты как имя пользователя в svn + ssh login?

ssh [email protected] 

К сожалению, то же не работает SVN + SSH. Меня не доставили:

svn ls svn+ssh://[email protected]/home/accountname/data/svn/repos 

Кто-нибудь знает, как это обычно делается?

ответ

4

Поскольку это URL-адрес, вы пробовали URL-кодирование знака @? Я не знаю, будет ли это работать, но вы можете попробовать user.name%40mydomain.com.

+0

Ha! Кодировка URL не работала, но% (вместо $) - это то, что было необходимо. Таким образом, строка входа на самом деле: svn ls svn + ssh: //user.name%[email protected]/home/accountname/data/svn/repos Я бы не нашел, что без этого предложения , Спасибо! – Andrew

+0

Странно. Я бы не подумал, что вы можете заменить любой из этих символов ($ in ssh или% in svn + ssh) для символа @. На самом деле, я бы подумал, что $ mydomain в команде SSH заменяется пустой строкой, поэтому в итоге вы попадаете в user.name.com. Но эй, если он работает, здорово! –

-1

Не заменяется ли $ оболочкой, которую вы используете? И SVN имеет только имена пользователей вместо пользователя + email для аутентификации. Я предполагаю, что это не сработает.

+0

Я старался создать как ssh-соединение, так и svn-соединение одинаково в одной и той же оболочке, поэтому я ожидал, что учетные данные будут обрабатываться одинаково. Я попытался сбросить «@ mydomain.com» (плюс множество других вариантов), и я получаю тот же результат. Проблема в том, что на моем хосте имя пользователя _is_ - адрес электронной почты. Я просто не знаю, управляется ли аутентификация svn или передается непосредственно ssh или что-то где-то посередине. – Andrew

0

Как сказано в предыдущем ответе, если вы находитесь в окне UNIX, ваша программа оболочки, вероятно, пытается заменить $, как если бы она была переменной. Попробуйте избежать знак «$», включив в обратную косую черту перед ним, как это:

svn ls svn+ssh://user.name\[email protected]/home/accountname/data/svn/repos 

В качестве альтернативы, если вы используете одинарные кавычки URL, BASH или любой другой оболочки вы используете не должны пытаться заменить $.

svn ls 'svn+ssh://[email protected]/home/accountname/data/svn/repos'