Bash

通過中間人伺服器的 SSH 隧道 - 如何一步連接(使用密鑰對)?

  • July 9, 2013

我的問題基本上是如何將我現有的兩個步驟變成一個步驟。

我使用這樣的中間人伺服器在兩台電腦之間建立了一個有效的 SSH 隧道:

Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop

我現在做的是從 Kubuntu_laptop 到 Debian_Server,然後從 Debian_Server 到 Kubuntu_desktop 的 SSH。我想做一個 SSH 命令,在我的 Kubuntu_laptop 上以 bash 的形式發出,導致我連接到 Kubuntu_desktop (shell/bash)。

我現在使用的命令如下。第1步:

me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server  

第2步:

admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost 

然後我通過 SSH(來自 kubuntu_laptop)連接到 kubuntu_desktop。

所有 SSH 連接都需要 RSA 密鑰。密碼登錄一直被禁用。請注意,其中兩台電腦上的電腦使用者帳戶不同。

關於這條腿的連接:

Debian_Server<--nat_fw<--Kubuntu_desktop

這是它的建立方式:

autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22

注意 Kubuntu_desktop 作為 user@mydebian.com(不是 admin@debian_server)連接到中間人。但是當我連接到 Kubuntu_desktop 時,我以管理員使用者身份連接。

我無法更改現有的監控埠 (5234) 或遠端 (-R) 埠號(本例中為 1234)。我無法更改 SSH 安全性以允許密碼登錄。我無法打開任何新的防火牆埠。我無法更改使用者帳戶(筆記型電腦除外)。

確保在 Debian 伺服器上安裝了 netcat,並ProxyCommand在本地 SSH 配置中使用 ( ~/.ssh/config)。

Host Kubuntu_desktop
 ProxyCommand ssh Debian_Server nc localhost 1234

感謝@Ignacio Vazquez-Abrams 以下是所有步驟:

確保在 Debian 伺服器上安裝了 netcat,並在本地 SSH 配置 (~/.ssh/config) 中使用 ProxyCommand。

我編輯配置如下:

me@kubuntu_laptop:~/.ssh$ nano config

內容是:

Host kubuntu_desktop
 ProxyCommand ssh debian_server_fqdn nc localhost 1234
 User admin
 PasswordAuthentication no
 IdentityFile ~/.ssh/my_id_rsa

然後只需連接:

me@kubuntu_laptop:~$ ssh kubuntu_desktop

一步通過 SSH 連接到 kubuntu_desktop!完美的

更新:

這使它更加靈活:

me@kubuntu_laptop:~/.ssh$ nano config

新的內容是:

Host family_desktops
 ProxyCommand ssh debian_server_fqdn nc localhost %p
 User admin
 PasswordAuthentication no
 IdentityFile ~/.ssh/my_id_rsa

然後只需連接到媽媽:

me@kubuntu_laptop:~$ ssh family_desktops -p 1234

並連接到爸爸:

me@kubuntu_laptop:~$ ssh family_desktops -p 5678

當然,媽媽和爸爸必須設置第 0 步(來自我原來的問題),每個人都定義了自己的 -R 埠。爸爸的例子:

第 0 步(針對爸爸):

autossh -M 6543 -N -f -R 5678:localhost:22 user@mydebian.com -p 22

選修的:

DAD=5678
ssh family_desktops -p $DAD

引用自:https://unix.stackexchange.com/questions/82269