ssh/scp 有效,但 rsync 只是不斷地說“不”
您好我有一個 Windows 2003 伺服器,我需要備份到
linux
客戶端,所以我安裝cygwin
在Win2k3
. 在Win2k3
我已啟用ssh
,scp
但是(因為Win2k3
伺服器使用自定義的 Windows SFTP 伺服器在埠 22 上偵聽)我必須設置scp
/ssh
才能port 222
在 cygwin 上執行。它工作正常。只要我使用 ssh/scp 並在命令行中使用 -p/-P 開關。
SSH Public/Private Key Pair
我通過 ssh/scp 為我的使用者建立了一個從linux client
到Win2k3 server
.然後我在 Win2k3 上啟動 rsyncd 並在 中添加使用者
/etc/rsyncd.conf
,創建/etc/rsyncd.secrets
並分配特權,看起來不錯。然後,當我嘗試通過 ssh 進行 rsync 連接 /not/ 時,它可以工作,但我想 /only/ 通過 ssh 進行連接,當我這樣做時,它每次都會失敗,並出現 0 個字節。我嘗試了多個使用者並重寫了 rsyncd.conf 一百萬次,但它不斷失敗。我開始認為我需要從客戶端的角度告訴 rsync 客戶端 ssh 埠是 222。如果是這樣,我該怎麼做?
是的,您當然必須:
rsync -e 'ssh -p 222' ...
或者:
RSYNC_RSH='ssh -p 222' rsync ...
或者,您可以指定與
~/.ssh/config
該ssh
主機的連接預設在埠 222 上:Host that-host Port 222
一個很晚的答案,但可以幫助其他人……
rsync
以兩種模式之一執行。
- 您可以在 之間執行它
ssh
,本地rsync
程序將在遠端系統上啟動一個rsync
程序作為其伺服器,並ssh
提供兩個系統之間的加密傳輸。此模式由遠端主機和遠端路徑之間的單個冒號表示:rsync /path/to/local/ remote:/path/to/remote
- 您可以將其作為守護程序執行,本地
rsync
程序將直接連接到已經執行的伺服器rsync
程序。ssh
此方案不提供加密(或)。此模式由遠端主機和遠端路徑之間的雙冒號表示:rsync /path/to/local remote::/path/to/remote
您不需要安裝伺服器
ssh
和守護rsync
程序。一個或另一個就足夠了。對於安全的 LAN,或者文件內容是公開的,
rsync
守護程序可能更適合,因為它不需要使用者能夠登錄到遠端系統。該ssh
方法更適合不安全或不受信任的網路(即 Internet),但它確實需要非常仔細的設置或使用者能夠登錄到遠端系統的能力。在您的情況下,您希望能夠僅通過 進行連接,因此配置或執行守護程序
ssh
是沒有意義的。rsync