我想透過我擁有的伺服器使用 SSH 遠端轉送來連接到公司電腦(「目標」伺服器),方法是在目標上運行類似以下內容:
ssh -R '*:10000:localhost:22' forwarding-server
問題是目標並不總是保持最新,我無法控制這一點。我不想讓其 SSH 伺服器可以直接從 Internet 存取。
理想情況下,我想要求身份驗證到轉送伺服器,使用 SSH 金鑰,然後才允許轉送到目標伺服器。當我在測試機器上進行設定時,連接立即轉發到目標伺服器。
有沒有辦法要求身份驗證前連線被轉發?
答案1
有沒有辦法在轉發連線之前要求身份驗證?
這實際上就是 SSH 的工作方式 – 除非轉發伺服器的管理員故意去殘障人士由於某種原因進行身份驗證。
運行添加了選項的命令-v -v
。您將看到以下可能性之一:
- 您將使用您的 SSH 公鑰自動進行身份驗證;
- 您將使用 GSSAPI (Kerberos) 自動進行身份驗證;
- 您正在重複使用多路復用連線(ControlMaster/ControlPath),只需在已通過身份驗證的會話中新增隧道;
- 所有身份驗證機制都會被跳過,因為遠端帳戶的密碼為空,並且伺服器已配置為允許這樣做。