2010-05-10 2 views
6

Je dois autoriser l'accès à un référentiel svn en utilisant des adresses e-mail comme nom d'utilisateur. Je peux connecter au serveur via ssh aucun problème en changeant l'adresse e-mail « @ » à un « $ » comme ceci:Adresse e-mail en tant que nom d'utilisateur dans svn + ssh login?

ssh [email protected] 

Malheureusement, le même ne fonctionne pas pour svn + ssh. Cela ne me mène nulle part:

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

Quelqu'un sait-il comment cela est habituellement fait?

Répondre

4

Puisqu'il s'agit d'une URL, avez-vous essayé d'encoder l'URL @? Je ne sais pas si cela fonctionnerait, mais vous pouvez essayer user.name%40mydomain.com.

+0

Ha! L'encodage d'URL n'a pas fonctionné, mais le% (au lieu du $) est ce qui était nécessaire. Donc, la chaîne de connexion est en fait: svn ls svn + ssh: //user.name%[email protected]/home/accountname/data/svn/repos Je n'aurais pas trouvé cela sans cette suggestion . Merci! – Andrew

+0

Bizarre. Je n'aurais pas pensé que vous pourriez substituer l'un de ces caractères ($ dans ssh ou% dans svn + ssh) pour le caractère @. En fait, je pense que $ mydomain dans la commande SSH est remplacée par une chaîne vide, donc vous finissez par user.name.com dans ce cas. Mais bon, si ça marche, génial! –

-1

Le $ n'est pas remplacé par le shell que vous utilisez? Et SVN a seulement des noms d'utilisateur au lieu d'utilisateur + email pour l'authentification. Je suppose que cela ne fonctionnerait pas.

+0

J'ai pris soin de créer la connexion ssh et la connexion svn de la même façon dans le même shell, donc je m'attendais à ce que les informations d'identification soient traitées de la même manière. J'ai essayé de laisser tomber le "@ mydomain.com" (plus beaucoup d'autres variations) et j'obtiens le même résultat. Le problème est que sur mon hôte, le nom d'utilisateur est une adresse e-mail. Je ne sais pas si l'authentification est gérée par svn ou transmise directement à ssh ou quelque part entre les deux. – Andrew

0

Comme la réponse précédente l'indique, si vous utilisez une machine UNIX, votre programme shell essaie probablement de remplacer le $ comme s'il s'agissait d'une variable. Essayez échapper le signe « $ » en incluant une barre oblique inverse avant comme ceci:

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

Alternativement, si vous utilisez des guillemets simples autour de l'URL, BASH ou shell que vous utilisez ne devrait pas essayer de remplacer le $.

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