He estado intentando el siguiente comando:
rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path
SSH se está ejecutando en el puerto 2222, pero rsync todavía intenta usar el puerto 22 y luego se queja de no encontrar la ruta, porque, por supuesto, no existe.
Me gustaría saber si es posible sincronizar a un host remoto en un puerto ssh no estándar.
rsync
un puerto extraño muchas veces, pero cada vez se extiende lo suficiente como para olvidar la sintaxis.Su línea de comando debería verse así:
esto funciona bien, lo uso todo el tiempo sin necesidad de nuevas reglas de firewall, solo tenga en cuenta que el comando SSH está entre comillas.
fuente
user@host:/path
cuando necesite enviar archivos a través de un puerto SSH específico:
ejemplo
fuente
use la "opción rsh". p.ej:
consulte: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/
fuente
Un poco fuera de tema pero podría ayudar a alguien. Si necesita pasar la contraseña y el puerto, sugiero usar el
sshpass
paquete. El comando de línea de comando se vería así:sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' [email protected]:/dir_on_host/
fuente
Encontré esta solución en el sitio de Mike Hike Hostetler que funcionó perfectamente para mí.
fuente
La sintaxis correcta es decirle a Rsync que use un comando SSH personalizado (agregando -p 2222), que crea un túnel seguro al lado remoto usando SSH, luego se conecta a través de localhost: 873
Rsync se ejecuta como un daemon en el puerto TCP 873, que no es seguro.
Del hombre Rsync:
Lo que induce a error a la gente a intentar esto:
Sin embargo, eso le indica que se conecte al demonio Rsync en el puerto 2222, que no está allí.
fuente
No pude lograr que rsync se conectara a través de ssh en un puerto diferente, pero pude redirigir la conexión ssh a la computadora que quería a través de iptables. Esta no es la solución que estaba buscando, pero resolvió mi problema.
fuente