
我工作的地方有一個登入伺服器,然後我從該登入伺服器登入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
這會導致任何到連接埠的連接都2222
被localhost
轉發到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
無縫工作,只需使用scp
或rsync
任何您喜歡的方式來複製文件即可。