使用 scp 我可以獲得一個文件
scp remoteA:file .
並放置一個文件
scp file remoteB:
但當我嘗試時
scp remoteA:file remoteB:
我明白了
ssh: Could not resolve hostname remoteB: Name or service not known
lost connection
為什麼?
編輯:
RemoteA 和 RemoteB 描述位於 ~/.ssh/config 中
答案1
可能與 scp 本身無關,而是從一台主機到另一台主機的某種名稱解析。另一件需要考慮的事情是身份驗證。最好有從 A 到 B 的無密碼金鑰驗證。 scp 沒有找到該定義。如果主機定義有問題,請嘗試主機的真實 FQDN,它應該可以正常運作。另外,使用 -v 查看是否可以找到該錯誤的更多詳細資訊。
答案2
您需要指定一個remoteA
可以到達的主機,因為複製是remoteA
直接從 到 進行的remoteB
。
為了避免這種情況,您可以使用該-3
選項。man scp
說了它的作用:
兩個遠端主機之間的副本是透過本地主機傳輸的。如果沒有此選項,資料將直接在兩個遠端主機之間複製。請注意,此選項會停用進度表。
答案3
對於那些因為 scp 指責本地檔案是它無法解析的主機名稱而來到這裡的人(另一個來源名稱或服務未知), 例如:
> scp archive_2017-03-01-09:54:02.tar.gz backupserver:/var/backups/
ssh: Could not resolve hostname archive_2017-03-01-09:54:02.tar.gz: Name or service not known
解決方法:
> scp ./archive_2017-03-01-09:54:02.tar.gz backupserver:/var/backups/