如何直接透過伺服器進行 ssh 和 scp?

如何直接透過伺服器進行 ssh 和 scp?

我透過以下方式連接到 server2:

home$ ssh server1
server1$ ssh server2
server2$

我有時也需要以這種方式進行 scp,這需要一些額外的時間:

home$ ssh server1
server1$ scp server2:file .
server1$ exit
home$ scp server1:file .

有沒有辦法從家裡用一個指令來做到這一點?我正在使用公鑰身份驗證,但如果它也適用於密碼,那就太好了。

答案1

我建議使用 MobaXterm:你只需要

  • 從這裡下載:http://mobaxterm.mobatek.net/download-home-edition.html
  • 點擊“新會話”並選擇“ssh”
  • 在「遠端主機名稱」欄位中指定您的「server2」電腦名稱或 IP 位址
  • 在「SSH 反彈(透過網關 ssh 伺服器連線)」欄位中指定您的「server1」電腦名稱或 IP 位址

這將直接啟動一個新的 SSH 命令到您的「server2」電腦。在視窗左側,您還可以存取圖形 SFTP 檔案傳輸工具,該工具也將直接連接到「server2」。

答案2

您可以使用 SSH 隧道,如下所示:

ssh -f server1 -L 8888:server2:22 -N

這將在本機電腦上的連接埠 8888(假設沒有其他進程正在使用該連接埠)上開啟一個套接字,該套接字透過 server1 將連線建立到 server2(假設 SSH 正在連接埠 22 上執行)。-N和標誌-f告訴 SSH 分叉到後台(如果你想停止隧道,你必須終止該進程)。

現在你可以透過以下方式從 server2 取得 scp 文件

scp -P 8888 localhost:file

答案3

home$ server1 "ssh server2"

但當涉及更多伺服器時,轉義命令字串將會很痛苦。

答案4

將 SOCKS5 與動態隧道結合使用

建立到第一台機器的動態 ssh 隧道。然後,使用第一個連線作為 SOCKS5 代理程式來存取遠端網路上的第二個主機。

這很容易透過 putty 設定。您可以根據需要重複使用代理多次。有些程式直接支援SOCKS5。就像膩子和 ssh 一樣。

在 Linux 下,代理鏈可用於代理本身不支援 SOCKS5 的程式。在Windows下,我喜歡Proxycap。它與 RDP 配合良好。

要使用 Putty 進行設定:

在第一個主機設定頁面的隧道下:

  • 建立動態隧道
  • 將連接埠設定為 9050。
  • 將目標部分留空,因為它是動態的。
  • 儲存您的設定。 (從會話頁面完成。)

然後,在第二個主機的配置中,在代理下:

  • 選擇 SOCK55。
  • 將代理主機名稱更改為 127.0.0.1
  • 將連接埠設定為9050
  • 然後正常設定剩餘的會話
  • 儲存您的設定

連接到第二台主機。您必須先連線並登入第一台主機。然後您應該能夠透過代理 ssh 連線連接到第二台主機,

您也可以使用 ssh_config 條目從命令列執行此操作: http://www.undeadly.org/cgi?action=article&sid=20070925181947

相關內容