Ho due macchine Linux e sto provando a sincronizzare un file tra loro due usando 'rsync'.
Ho generato una chiave sulla macchina client usando:
ssh-keygen -t rsa
E poi copiato la chiave pubblica per /home/user1/.ssh/authorized_keys
e /home/user2/.ssh/authorized_keys
File.
Sono in grado di rsincronizzare un file con user1 usando il comando successivo:
rsync -a /home/user/sendIt.txt user1@some.host:/home/user1/
Tuttavia, quando sto cercando di usare rsync per sincronizzare un file con il secondo utente usando:
rsync -a /home/user/sendIt.txt user2@some.host:/home/user2/
Ho ricevuto questo errore:
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2) at compat.c(171) [sender=3.0.6]
Perché sono in grado di eseguire la sincronizzazione con un utente ma non con l'altro? Dovrei menzionare che il secondo utente è progettato per essere utilizzato solo come utente SFTP e viene incarcerato nella sua home directory.
Qualche idea su come risolverlo ed evitarlo in futuro? Qualsiasi aiuto sarebbe apprezzato, grazie.
.bashrc
sul server remoto emette qualsiasi cosa sul terminale. Rsync potrebbe non aspettarselo e potrebbe avere problemi di conseguenza. Puoi risolvere questo problema rimuovendo qualsiasi comando nel file .bashrc che emette il testo o eseguendo il piping di qualsiasi output /dev/null
“.
.bashrc
il file si trova?
.bashrc
il file si trova nella directory principale dell'utente. Quindi nel tuo caso lo sarebbe /home/user2/.bashrc
o ~/.bashrc
se effettui il login come utente.
rsync
binario nella sua casa, quindi anche ssh non riesce a trovarlo ed eseguirlo.