Linux
通過 ssh 建立隧道 rsync:// 協議
在我的區域網路(debian 伺服器,windows 客戶端)上,我使用 rsync:// 協議和這段程式碼
cwRsync\rsync.exe -avLP --force --append-verify rsync://rsync-usb@server/rsync-usb/* usb/
我已經讀過,帶有 rsync:// 協議的守護模式下的 rsync 不使用加密,所以如果我想通過網際網路使用 rsync,我想使用加密。我喜歡 rsync://user@server/module 的簡單性。
我不想使用允許登錄的 ssh 使用者,因為我不想授予對我的伺服器的訪問權限。
我創建了一個登錄被阻止的使用者
rsyncssh:x:1001:1007:,,,:/tmp:/bin/false
有沒有辦法通過 ssh 隧道 rsync:// 協議?例如使用 plink.exe(膩子連結)和私人使用者密鑰?
我經常使用 SSH 埠隧道來創建加密通道。由於您使用的是
rsync://
URL,我假設您在遠端伺服器的 TCP 埠 873 上執行 rsync 守護程序。我們可以這樣轉發這個埠:ssh -N -L 873:localhost:873 rsyncssh@server
該
-N
選項會阻止執行遠端命令,在您的情況下,這會斷開會話,因為沒有有效的 shell。您現在可以通過本地主機上的轉發埠連接到遠端伺服器,即執行舊命令但替換@server
為@localhost
.您還可以將
-f
選項添加到 SSH 命令以將 SSH 移動到後台,如果您希望始終保持連接打開,這可能會很方便。為了方便和安全,我建議使用私鑰登錄。如果您沒有在遠端伺服器上執行 rsync 守護程序,請設置一個並在
man 5 rsyncd.conf
必要時使用文件。