Hai bisogno di -e ssh per rsync?


22

Ho sempre usato per usare il seguente comando quando si copia da un server: rsync --progress -avze ssh user@host:/path/to/files ./here. Tuttavia, un amico della mente mi ha mostrato che posso semplicemente fare rsync --progress -avz user@host:/path/to/files ./here. Quindi la domanda è: se non ti serve -e sshperché c'è comunque?

Risposte:


20

Ogni volta che sono necessarie opzioni aggiuntive per il comando ssh al di fuori dell'utente e dell'host, è necessario il flag -e. Forse il server a cui ti stai connettendo ha l'ascolto ssh sulla porta 2222.

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

Un'alternativa per aggirare questo, ci sono 2 file che è possibile utilizzare. /etc/ssh/ssh_configo~/.ssh/config

Il file di configurazione utilizza lo stesso formato di ssh_config. Può essere configurato solo per utente!


9

Dovresti anche -eutilizzare una posizione della chiave privata non predefinita, ovvero specificare la chiave privata tramite -e 'ssh -i /path/to/private/key/file.pem'. Del resto, anche le porte di ascolto non predefinite per sshd. Fondamentalmente, usa -ese solo usando ssh user@hostnon funziona.


-iNel tuo esempio è un'opzione per ssh o rsync? E se è per ssh, funziona senza le virgolette singole attorno al comando?
Izkata,

Oh, giusto, ho bisogno delle virgolette. Modifica la mia risposta ora.
cjc,

8

Non è necessario -e ssh per usare ssh. In effetti, se si specifica la destinazione come user @ host: / path / to / files, si utilizza ssh per impostazione predefinita. È lasciato in a) per motivi di compatibilità eb) casi marginali in cui potresti avere una combinazione di host rsyncd e ssh.


2
È richiesto su RHEL 3, ad esempio, poiché RSYNC_RSH è impostato su "rsh".
Kyle Smith,

5

Dipende da cosa è stato specificato per l' --with-rshopzione di configurazione al momento della compilazione. L'impostazione predefinita ora è ssh se questa opzione non è stata specificata. Era stato rsh in qualche momento in passato, tuttavia anche se è rsh, potrebbe non essere necessario in quanto ssh potrebbe essere l'implementazione rsh predefinita su molte caselle. Su tutte le mie macchine, ad esempio, readlink -f $(which rsh)mostra che rsh è in realtà solo un link simbolico che punta a / usr / sbin / ssh

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.