¿Necesita -e ssh para rsync?

22

Siempre solía utilizar el siguiente comando cuando se copia desde un servidor: rsync --progress -avze ssh user@host:/path/to/files ./here. Sin embargo, un amigo mental me mostró que simplemente puedo hacer rsync --progress -avz user@host:/path/to/files ./here. Entonces la pregunta es, si no necesita, -e ssh¿por qué está allí de todos modos?

GradGuy
fuente

Respuestas:

20

Cada vez que necesite opciones adicionales para el comando ssh fuera del usuario y el host, necesitará el indicador -e. Quizás el servidor al que se está conectando tiene escucha ssh en el puerto 2222.

rsync -e 'ssh -p 2222' /source usr@host:/dest

Una alternativa para evitar esto, hay 2 archivos que puede usar. /etc/ssh/ssh_configo~/.ssh/config

El archivo de configuración usa el mismo formato que ssh_config. ¡Solo se puede configurar por usuario!

UtahJarhead
fuente
9

También necesitaría -esi utiliza una ubicación de clave privada no predeterminada, es decir, especifique la clave privada mediante -e 'ssh -i /path/to/private/key/file.pem'. Para el caso, puertos de escucha no predeterminados para sshd, también. Básicamente, use -esi solo usar ssh user@hostno funciona.

cjc
fuente
¿Es -iuna opción para ssh o rsync en su ejemplo? Y si es para ssh, ¿funciona sin las comillas simples alrededor del comando?
Izkata
Oh, claro, necesito las citas. Editando mi respuesta ahora.
cjc
8

No necesita -e ssh para usar ssh. De hecho, si especifica el destino como usuario @ host: / ruta / a / archivos, está usando ssh de forma predeterminada. Se deja en a) por razones de compatibilidad yb) casos marginales en los que podría tener una combinación de hosts rsyncd y ssh.

Joel E Salas
fuente
2
Se requiere en RHEL 3, por ejemplo, ya que RSYNC_RSH tiene el valor predeterminado 'rsh'.
Kyle Smith
5

Depende de lo que se especificó para la --with-rshopción de configuración en tiempo de compilación. El valor predeterminado ahora es ssh si no se especificó esta opción. Había sido rsh en algún momento en el pasado, sin embargo, incluso si es rsh, podría no ser necesario ya que ssh podría ser la implementación rsh predeterminada en muchos cuadros. En todas mis máquinas, por ejemplo, readlink -f $(which rsh)muestra que rsh es realmente solo un enlace simbólico que apunta a / usr / sbin / ssh

estofado
fuente