從 Windows 透過兩層 SSH 複製文件

從 Windows 透過兩層 SSH 複製文件

我工作的地方有一個登入伺服器,然後我從該登入伺服器登入Linux機器。如,

ssh login@host

ssh computer_name

每次都提供身份驗證。如果我使用我的筆記型電腦(不幸的是)執行 Vista,我會執行 putty 進入,login@host然後從它打開的終端登入 computer_name。

我經常需要將本機檔案從我的電腦取得到 Linux 機器上,反之亦然。通常我使用WinSCP傳輸到,login@hostname然後scp到computer_name,或相反。但是,login@hostname儲存空間非常有限,我無法透過這種方式取得更大的檔案。有沒有辦法在computer_name和我的筆記型電腦之間直接傳輸檔案?

答案1

設定一個連接埠為本機連接埠轉送。對於 OpenSSH 這意味著:

$ ssh login@host -L 2222:computer_name:22

這會導致任何到連接埠的連接都2222localhost轉發到via22上的連接埠computer_name- 這在這裡很重要 - host。然後跟隨

$ scp -P 2222 computer_name_user@localhost:remote local

顯然這也允許您連接到computer_name

$ scp -p 2222 computer_name_user@localhost

PuTTY 能夠進行連接埠轉送(scp據我記得它也有),雖然它是一個出售的軟體,但我實際上建議在 Cygwin 下使用 OpenSSH,因為這為您提供了事實上的標準 SSH介面(帶有所有花里胡哨的功能)。

我無法快速找到清晰的重複項,但您可能想檢查:

答案2

透過兩層 SSH 執行操作的簡單方法是隱藏中間層。

設定一個ProxyCommand這樣您就可以直接ssh computer_name從原始客戶端執行。設定公鑰身份驗證並啟動代理轉發(ForwardAgent yes在 中~/.ssh/config),這樣您就不需要向中間電腦明確提供憑證。

現在可以ssh computer_name無縫工作,只需使用scprsync任何您喜歡的方式來複製文件即可。

相關內容