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 "[email protected]" y el servidor ftp es solo "ejemplo.com"
Terminaré con
sftp -oPort:8777 [email protected]@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?
sftp -oPort:8777 user\@[email protected]
Respuestas:
Pase el nombre de usuario a través de la
-o User
opción, o a través de laUser
directiva equivalente en el archivo de configuración del cliente (~/.ssh/config
).Esto se aplica a
ssh
,scp
ysshfs
también. Usar el archivo de configuración en lugar de las-o
opciones tiene la ventaja de trabajar también con herramientas que llamanssh
y no le permiten pasar fácilmente las opciones de la línea de comandos si es que lo hace.fuente
ssh
ysftp
(yscp
también).@
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.Esto también funcionaría, aunque en realidad es una forma bastante pobre para que proporcionen a los usuarios este tipo de nombre.
fuente
Reemplazar
@
("comercial en") con+
("signo más") podría ser aceptable en algunos servidores SFTP:fuente