如何在 Linux 中使用 SSH ProxyJump 和 SSH ProxyCommand

yanding 2023-07-11 1566

摘要: 在本指南中,我們介紹了在連接到跳轉(zhuǎn)服務(wù)器時如何使用 SSH ProxyJump 和 SSH ProxyCommand 命令。


在我們之前關(guān)于如何設(shè)置 SSH Jump 服務(wù)器的指南中,我們討論了堡壘主機(jī)的概念。Bastion 主機(jī)或跳轉(zhuǎn)服務(wù)器是 SSH 客戶端在訪問目標(biāo)遠(yuǎn)程 Linux 系統(tǒng)之前首先連接的中間設(shè)備。SSH Jump 服務(wù)器充當(dāng) IT 資產(chǎn)的網(wǎng)關(guān),從而減少攻擊面。


SSH ProxyJump 和 ProxyCommand 命令確定客戶端如何通過跳轉(zhuǎn)服務(wù)器、跳轉(zhuǎn)主機(jī)或堡壘服務(wù)器連接到遠(yuǎn)程服務(wù)器。


本指南闡述了 Linux 中的 SSH ProxyJump 和 SSH 代理命令。

目錄

使用 SSH ProxyJump 命令連接到遠(yuǎn)程 Linux

-JProxyJump 命令已標(biāo)記。它是在 OpenSSH 服務(wù)器版本 7.3 中引入的,可幫助您通過跳過堡壘或跳轉(zhuǎn)服務(wù)器來連接到遠(yuǎn)程目標(biāo)。



下面的詞匯表顯示了如何使用此選項:


$ ssh -J <跳轉(zhuǎn)服務(wù)器> <遠(yuǎn)程目標(biāo)>

對于多個堡壘或跳轉(zhuǎn)服務(wù)器,語法采用以下形式。


$ ssh -J <跳轉(zhuǎn)服務(wù)器-1> <跳轉(zhuǎn)服務(wù)器-2> <遠(yuǎn)程目標(biāo)>

在這兩種情況下,他們都會在每一步中以根用戶身份登錄。出于安全原因,這不合適,因此您可以在每種情況下創(chuàng)建不同的用戶。


您可以顯式指定不同的用戶和 SSH 端口,如圖所示。


$ ssh -J <[電子郵件:端口> <[電子郵件:端口>

為了顯示正在運(yùn)行的 ProxyJump 標(biāo)志,我們有一個簡單的過程,如圖所示。


跳轉(zhuǎn)服務(wù)器IP:173.82.232.55 用戶:james

遠(yuǎn)程目標(biāo)IP:173.82.227.89 用戶:howtoing

要使用 Jump 服務(wù)器連接到遠(yuǎn)程目標(biāo),命令如下所示。


$ ssh -J [電子郵件 [電子郵件 

該命令會要求您輸入跳轉(zhuǎn)服務(wù)器的用戶密碼,然后輸入目標(biāo)系統(tǒng)的密碼,您將被允許訪問目標(biāo)系統(tǒng)。



如果您經(jīng)常使用特定的硬盤驅(qū)動器連接到特定的遠(yuǎn)程目標(biāo),則可以將以下 ProxyJump 設(shè)置添加到 ~/.ssh/config 文件以同步連接。如果發(fā)生這種情況,您只會被驗(yàn)證一次,并且這只發(fā)生在搜索目標(biāo)上。


主機(jī)主機(jī)跳轉(zhuǎn)

用戶詹姆斯

主機(jī)名 173.82.232.55


主機(jī) host_destination

用戶技術(shù)

主機(jī)名 173.82.227.89

端口22

使用上述過程,您可以如圖所示連接到目標(biāo)。


$ ssh -J 主機(jī)目的地


使用 SSH ProxyCommand 命令連接到遠(yuǎn)程 Linux

在 SSH 代理跳轉(zhuǎn)之前,ProxyCommand 是跳轉(zhuǎn)主機(jī)到達(dá)遠(yuǎn)程目標(biāo)的唯一方法。它的工作原理是通過跳轉(zhuǎn)服務(wù)器或堡壘從遠(yuǎn)程目標(biāo)發(fā)送 stdin(標(biāo)準(zhǔn)輸入)和 stdout(標(biāo)準(zhǔn)輸出)。



ProxyCommand 接受以下語法。


$ ssh -o ProxyCommand="ssh -W %h:%p <跳轉(zhuǎn)服務(wù)器>" <遠(yuǎn)程目標(biāo)>

此時,-Wgo %h:%pargument 將標(biāo)準(zhǔn)輸入轉(zhuǎn)發(fā)并輸出到遠(yuǎn)程主機(jī)(%h)和遠(yuǎn)程主機(jī)端口(%p).


為了實(shí)現(xiàn)代碼,我們的代碼如下所示


$ ssh -o ProxyCommand="ssh -W %h:%p 173.82.232.55" 173.82.227.89


當(dāng)然,編寫整個代碼是乏味且耗時的。為了避免編寫如此長的命令,請將以下代碼行添加到 ~/.ssh/config 文件中。


主機(jī) 主機(jī)-目的地

主機(jī)名 173.82.227.89

ProxyCommand ssh -q -W %h:%p 主機(jī)跳轉(zhuǎn)

做好準(zhǔn)備并擺脫困境。


現(xiàn)在您所要做的就是運(yùn)行以下命令來連接到遠(yuǎn)程服務(wù)器。


$ ssh 主機(jī)目的地

在本指南中,我們將展示 ProxyJump 和 ProxyCommand 命令的工作原理。ProxyJump 通常作為 ProxyCommand 的更好替代品出現(xiàn),并提供一種通過跳轉(zhuǎn)主機(jī)連接到遠(yuǎn)程目標(biāo)的簡單且無麻煩的方法。

言鼎科技

The End