¿Cómo hago sftp a un servidor si el nombre de usuario contiene el símbolo @


25

Tengo que enviar a un servidor a un puerto específico, pero el nombre de usuario contiene el símbolo @.

supongamos que el usuario es "usuario@ejemplo.com" y el servidor ftp es solo "ejemplo.com"

Terminaré con

sftp -oPort:8777 user@example.com@example.com

lo que obviamente no funcionará, como lo he probado.

¿Qué tipo de aficionado crea un nombre de usuario con @? Ok, mi jefe lo hizo.

¿Cómo resuelvo eso?


1
Intenta escapar del "comercial a las" asísftp -oPort:8777 user\@domain.com@domain.com
Tim

Si elimina la parte del nombre de usuario y simplemente abandona el dominio, ¿le solicitará el nombre de usuario una vez que haya ingresado el comando?
ladaghini

@ladaghini: esto se debe usar dentro de un script ... no hay avisos disponibles. Ok, sé las implicaciones de tener un nombre de usuario y contraseña en un script, pero este nombre de usuario tiene un área limitada. Tiene que ser sftp porque este servidor solo genera nombres de usuario para sftp.
SpaceDog

@Tim ... escapar no ayuda.
SpaceDog

Respuestas:


33

Pase el nombre de usuario a través de la -o Useropción, o a través de la Userdirectiva equivalente en el archivo de configuración del cliente ( ~/.ssh/config).

sftp -o Port:8777 -o User=user@example.com example.com

Esto se aplica a ssh, scpy sshfstambién. Usar el archivo de configuración en lugar de las -oopciones tiene la ventaja de trabajar también con herramientas que llaman sshy no le permiten pasar fácilmente las opciones de la línea de comandos si es que lo hace.


Este nombre de usuario no tiene acceso ssh, solo sftp.
SpaceDog

@DigitalRobot s / ssh / sftp /
ladaghini

@DigitalRobot Esto funciona para ambos sshy sftp(y scptambién).
Gilles 'SO- deja de ser malvado'

Seguir. ¿Qué debemos hacer si el passwd también contiene '@' o '/'?
Shicheng Guo

@ShichengGuo ??? No hay problema con @o /en la contraseña. Simplemente los escribes. SSH ni siquiera permite pasar la contraseña en la opción de línea de comando o en un archivo de configuración.
Gilles 'SO- deja de ser malvado'

6
sftp -o Port:8777 'user@domain.com'@domain.com

Esto también funcionaría, aunque en realidad es una forma bastante pobre para que proporcionen a los usuarios este tipo de nombre.


0

Reemplazar @("comercial en") con +("signo más") podría ser aceptable en algunos servidores SFTP:

sftp -oPort:8777 user+example.com@example.com
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.