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 Useropción, o a través de laUserdirectiva equivalente en el archivo de configuración del cliente (~/.ssh/config).Esto se aplica a
ssh,scpysshfstambién. Usar el archivo de configuración en lugar de las-oopciones tiene la ventaja de trabajar también con herramientas que llamansshy no le permiten pasar fácilmente las opciones de la línea de comandos si es que lo hace.fuente
sshysftp(yscptambié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