Saya telah mencoba perintah berikut:
rsync -rvz --progress --remove-sent-files ./dir user@host:2222/path
SSH berjalan pada port 2222, tetapi rsync masih mencoba menggunakan port 22 dan kemudian mengeluh tentang tidak menemukan jalan, karena tentu saja tidak ada.
Saya ingin tahu apakah mungkin untuk rsync ke host jarak jauh pada port ssh non-standar.
rsync
pelabuhan aneh berkali-kali tetapi setiap kali tersebar cukup ke tempat Anda melupakan sintaks.Baris perintah Anda akan terlihat seperti ini:
ini berfungsi dengan baik - Saya menggunakannya sepanjang waktu tanpa memerlukan aturan firewall baru - perhatikan saja perintah SSH itu sendiri terlampir dalam tanda kutip.
sumber
user@host:/path
ketika Anda perlu mengirim file melalui port SSH tertentu:
contoh
sumber
gunakan "opsi rsh". misalnya:
lihat: http://www.linuxquestions.org/questions/linux-software-2/rsync-ssh-on-different-port-448112/
sumber
Sedikit offtopic tetapi mungkin bisa membantu seseorang. Jika Anda perlu memasukkan kata sandi dan port saya sarankan menggunakan
sshpass
paket. Perintah baris perintah akan terlihat seperti ini:sshpass -p "password" rsync -avzh -e 'ssh -p PORT312' [email protected]:/dir_on_host/
sumber
Saya menemukan solusi ini di situs Mike Hike Hostetler yang bekerja sempurna untuk saya.
sumber
Sintaks yang benar adalah untuk memberitahu Rsync untuk menggunakan perintah SSH khusus (menambahkan -p 2222), yang membuat terowongan aman ke sisi jauh menggunakan SSH, kemudian menghubungkan melalui localhost: 873
Rsync berjalan sebagai daemon pada port TCP 873, yang tidak aman.
Dari Rsync man:
Yang menyesatkan orang untuk mencoba ini:
Namun, itu menginstruksikannya untuk terhubung ke daemon Rsync pada port 2222, yang tidak ada di sana.
sumber
Saya tidak bisa mendapatkan rsync untuk terhubung melalui ssh pada port yang berbeda, tetapi saya bisa mengarahkan kembali koneksi ssh ke komputer yang saya inginkan melalui iptables. Ini bukan solusi yang saya cari, tetapi itu memecahkan masalah saya.
sumber