2015-03-03 152 views
13

我試圖將文件從一個遠程服務器從我本地機複製到另一個遠程服務器。 這裏就是我想要做的如何使用第三方本地機器上的scp在兩臺遠程服務器之間傳輸文件?

localA $ scp [email protected]:/path/to/file [email protected]:/path 

的問題是,我需要通過兩個密碼都爲用戶B和用戶C在遠程計算機上。

根據Garron以上應該可以,但我被拒絕了。

Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive). 
lost connection 

有什麼建議嗎?

回答

21

這個問題已經存在於超級用戶:

https://superuser.com/questions/686394/scp-between-two-remote-hosts-from-my-third-pc

scp -3 [email protected]:/home/user1/file1.txt [email protected]:/home/user2/file1.txt 

與那裏描述-3選項,通過在其上發出命令的PC指示SCP來路由流量。

如果remote1和remote2在同一個網絡上,則上述條件爲真。

如果不是: - 你必須使用端口轉發

+0

不通過本地主機添加-3路由流量真的放慢東西,如果本地主機有一個緩慢的連接? – wcochran 2017-08-11 23:00:57

+0

@wcochran是的,它的確如此。但在任何情況下都很容易。我想知道是否有一種通用的方法可以在兩個遠程主機之間建立直接的SSH連接,而不會泄露任何祕密。 – sudo 2018-01-24 03:03:59

1

如果您在authorised_keys文件中沒有條目,則只需要密碼。一旦您登錄到2臺服務器(localA - > remoteB & remoteB - > remoteC)並建立了您的原始命令應該工作的安全連接。

+0

你好,我仍然不能這樣做,因爲我使用clearcase,我相信。但你的提示很棒。 authorised_keys與〜/ .ssh/config和別名相結合要快得多。謝謝 – Alan 2015-03-04 14:56:10

3

這是可能的使用Linux終端下面的命令行:

SCP -3 USER1 @ IP:路徑/從/目錄/ USER2 @ IP:路徑/到/目錄

一個提示會出現詢問這樣的密碼:

USER1 @ IP的密碼:user2的@ IP的密碼:

如果通過預先給這兩個密碼才能在第一個密碼後輸入,它應該接受,但不會。即使您再次輸入了密碼,但在第一次輸入密碼後沒有按下輸入密碼,也不會再接受。

您必須先給user2,然後按回車鍵,然後輸入user1的密碼,然後按Enter鍵。這將工作。

我知道這聽起來不對,但只有這樣才行。這是scp中的錯誤

+0

是否有可能創建一個shell腳本,其密碼也存儲在裏面? – sjd 2018-02-01 07:17:22

+0

取決於!你的目標是什麼?你想做scp或ssh? – 2018-02-08 10:01:02

21

如果你可以從當地的ssh到兩個遠程服務器(本地 - > REMOTE1 &地方 - > REMOTE2),那麼你可以嘗試:

ssh -A -t [email protected] scp srcpath [email protected]:destpath 

這將轉移直接從REMOTE1REMOTE2一路使用您的本地憑據。

如果您不想被要求輸入密碼,那麼您應該在遙控器上設置authorized_keys文件。

+0

感謝Ruben,根據我迄今爲止見過的大多數經驗豐富的ssh用戶,使用密鑰是他們兩者中最安全的選擇。 – Alan 2016-05-16 10:49:36

+0

對此的一個說明是,因爲這將直接*從remote1連接到remote2,那麼它不足以從你的本地ssh到remote2,你需要檢查你是否可以從remote1 ssh到remote2(例如名稱和配置在您的〜/ .ssh/config在remote1) – Peteris 2016-08-04 08:21:18

+1

迄今爲止我所見過的最佳解決方案。您不必授權服務器彼此「ssh」,只需要使用密鑰訪問它們。與'scp -3'不同,數據直接在服務器之間複製,可能通過非常快速的本地網絡。 – 2016-11-11 21:27:02

1

我發現-o "ForwardAgent yes」的伎倆:

localA $ scp -o "ForwardAgent yes」 [email protected]:/path/to/file [email protected]:/path 

我喜歡這個優於-3,因爲我不希望中間減速機事情下降。我也喜歡@RubenCaro的回答,但這看起來更直接。

+0

它不適合我。錯誤:'權限被拒絕(publickey,gssapi-keyex,gssapi-with-mic,密碼)。 失去連接'。任何線索?謝謝! – Tung 2017-11-07 20:35:09

+0

適用於我(使用私鑰):scp -o'ForwardAgent yes'-i localkey.pem userB @ remoteB:/ path/to/file userC @ remoteC:/ path。 – brunesto 2018-03-05 15:59:02

相關問題