2010-05-10 14 views
6

Necesito permitir el acceso a un repositorio svn usando direcciones de correo electrónico como nombre de usuario. Puedo iniciar sesión en el servidor a través de SSH ningún problema al cambiar la dirección de correo electrónico "@" a un "$" de esta manera:Dirección de correo electrónico como nombre de usuario en svn + ssh login?

ssh [email protected] 

Por desgracia, el mismo no funciona para svn + ssh. Esto no me lleva a ninguna parte:

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

¿Alguien sabe cómo esto se hace generalmente?

Respuesta

4

Dado que es una URL, ¿ha intentado con la codificación URL del signo @? No sé si esto funcionaría, pero podrías probar user.name%40mydomain.com.

+0

¡Ja! La codificación URL no funcionó, pero el% (en lugar de $) es lo que se necesitaba. Así que la cadena de inicio de sesión es en realidad: svn ls svn + ssh: //user.name%[email protected]/home/accountname/data/svn/repos No lo hubiera encontrado sin esta sugerencia . Gracias! – Andrew

+0

Extraño. No hubiera pensado que podría sustituir cualquiera de esos caracteres ($ en ssh o% en svn + ssh) para el carácter @. De hecho, creo que $ mydomain en el comando SSH se reemplaza por una cadena vacía, por lo que terminas con user.name.com en ese caso. Pero bueno, si funciona, ¡genial! –

-1

¿No está siendo reemplazado el $ por el shell que está utilizando? Y SVN solo tiene nombres de usuario en lugar de usuario + correo electrónico para la autenticación. Supongo que esto no funcionaría.

+0

He tenido la precaución de crear tanto la conexión ssh como la conexión svn de la misma manera en el mismo shell, así que esperaba que las credenciales se manejaran igual también. He intentado eliminar el "@ midominio.com" (más muchas otras variaciones) y obtengo el mismo resultado. El problema es que en mi host, el nombre de usuario _es_ una dirección de correo electrónico. Simplemente no sé si la autenticación es administrada por svn o pasada directamente a ssh o algo intermedio. – Andrew

0

Como dice la respuesta anterior, si está en un recuadro UNIX, su programa de shell probablemente intente reemplazar el $ como si fuera una variable. Intenta escapar el signo "$" mediante la inclusión de una barra invertida antes de que de esta manera:

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

Como alternativa, si utiliza comillas simples alrededor de la URL, o lo que sea BASH shell que esté utilizando no debe tratar de sustituir el $.

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