僅具有目標密碼(而非兩個密碼)的 SSH 隧道?

僅具有目標密碼(而非兩個密碼)的 SSH 隧道?

我有一個運行 Ubuntu 14.04(我們稱之為destserver)的目標伺服器和一個也運行 Ubuntu 14.04(我們稱之為bridgeserver)的隧道伺服器,它具有固定的 IPV4 位址。我目前已將其設定為在啟動時destserver用於autossh連接到bridgeserver

exec autossh -M 0 -N -R 2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR

我在這裡使用密鑰身份驗證,因此上述命令無需密碼即可完成。現在,當我在某個公共網路上的筆記型電腦上時,我可以從中執行以下操作:

ssh -t -o ProxyCommand='ssh mybridgeuser@BRIDGESERVER_IP_ADDR nc localhost 2222' mydestuser@localhost

……這工作正常,除了它要求我輸入兩組密碼:

$ ssh -t -o ProxyCommand='ssh mybridgeuser@BRIDGESERVER_IP_ADDR nc localhost 2222' mydestuser@localhost
mybridgeuser@BRIDGESERVER_IP_ADDR's password: 
mydestuser@localhost's password: 
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.2.0-42-generic x86_64)
...

現在,我想讓這個目標伺服器可供其他人使用,但我不想共享橋接伺服器(我個人租用的)的任何身份驗證詳細信息,因此我不想共享橋接伺服器的密碼mybridgeuser。所以我想建立一個像上面這樣的連接 - 除非我只被問到用戶的密碼(例如mydestuserdestserver

是否有一種ssh語法可以在客戶端上使用,以便我可以destserver僅使用來自的用戶憑證destserver(沒有來自 的密碼提示bridgeserver)進行連接,而無需使用 更改當前設定autossh?如果需要更改設置,對設置的更改是什麼 -ssh筆記型電腦上的命令會是什麼樣子?

答案1

嗯,我對此可能是錯的,但我只是在我的初始化文件中寫道:

exec autossh -M 0 -N -R :2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR

.... 代替:

exec autossh -M 0 -N -R 2222:localhost:22 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -o "StrictHostKeyChecking=no" -o "BatchMode=yes" -i /path/to/bridgeserver_mybridgeuser_id_rsa mybridgeuser@BRIDGESERVER_IP_ADDR

....注意,我只是在原來的2222:localhost:22;之前添加了一個冒號。現在在筆記型電腦上我可以發出:

ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222

……現在似乎可以工作了,因為它只要求我輸入一個密碼:

$ ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
mydestuser@BRIDGESERVER_IP_ADDR's password: 
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.2.0-42-generic x86_64)
...

……而以前它不允許我這樣做?

$ ssh mydestuser@BRIDGESERVER_IP_ADDR -p 2222
ssh: connect to host BRIDGESERVER_IP_ADDR port 2222: Connection refused

我不確定為什麼需要這個冒號,所以我仍然想閱讀有關該問題的正確答案...

相關內容