Ssh

ssh 與 netcat 一起使用,通過堡壘主機將連接轉發到內部機器

  • March 7, 2011

我在公司數據中心有一台伺服器,系統管理員是我。上面執行著一些虛擬機。主伺服器可通過 SSH 從 Internet 訪問。有一些人在區域網路內訪問其IP在區域網路上的虛擬機

192.168.1.1  
192.168.1.2  
192.168.1.3
192.168.1.4

作為網際網路堡壘主機的主機具有 IP 192.168.1.50,只有我可以訪問它。我必須讓網際網路上的人們訪問我上面提到的 IP 的內部機器。我知道隧道是一個好方法,但人們相當非技術,不想進入隧道等行話。所以我遇到了一個此連結上解釋的解決方案 在 .ssh/config 文件中的 192.168.1.50 網關機器上,我添加以下內容

Host securehost.example.com     
ProxyCommand ssh user@bastion.example.com nc %h %p

現在我的問題是我是否需要在堡壘主機(網關)上為那些可以通過 SSH 連接到內部機器的使用者以及在每個使用者 .ssh/config 中創建單獨的帳戶,我需要進行上述條目或我放置的確切位置網關上的 .ssh/config。

還有 ssh user1@gateway.com

其中 user1 僅存在於內部機器 192.168.1.1 而不在網關上是正確的語法嗎?因為內部機器可以作為外部世界訪問

site1.example.com
site2.example.com
site3.example.com
site4.example.com

但是 SSH 僅適用於 example.com,並且只有一個使用者。那麼我應該如何使用**.ssh/config**

1)我應該使用網關的 .ssh/config 上的 ProxyCommand 的正確語法是什麼,

ProxyCommand ssh user1@inside.machine nc %h %p或者我應該使用

ProxyCommand    ssh user1@gateway.com in nc %h %p

2)我應該在網關上創建新使用者帳戶還是在 ssh_config 上的 AllowedUsers 中添加它們就足夠了?

ProxyCommand 指令必須在客戶端機器上指定,而不是在網關機器上,這會使您的使用者更加複雜。基本上從客戶端你說 ssh userX@inside.machine 使用 user@bastion.example.com 作為代理。

每個使用者都需要有一個 ssh 帳戶,但它可以是一個共享帳戶,因為“代理使用者名”仍然在客戶端指定。

引用自:https://serverfault.com/questions/244082