仅对代理进行身份验证的 ssh 隧道

仅对代理进行身份验证的 ssh 隧道

我有一个用例,可以在不知道远程主机凭据的情况下通过代理代理 ssh 请求。

client -> proxy -> remote

我正在尝试设置一个 ssh 隧道,客户端可以在其中连接到映射到远程的特定端口上的代理。我不想在遥控器上进行身份验证,而是希望遥控器来处理身份验证。

工作流程

  1. 代理创建一个 ssh 隧道,proxy:9000 -> remote:22
  2. 客户端连接:curl proxy_user@proxy -p 9000
  3. 使用代理帐户凭据完成身份验证,但连接到远程

一些背景知识,我希望在客户端不知道远程凭据信息的情况下从客户端访问远程,并且不使用密钥。

想法?也许还有另一种方法来解决这个问题?

抱歉,如果有任何困惑,为了澄清,想做这样的事情:

[代理] ssh -L 代理:9000:localhost:22 远程用户@远程

[客户端] ssh -p 9000 proxy_user@proxy

我希望客户端不知道远程的凭据。

答案1

您试图描述的内容非常令人困惑,但一般来说,这应该有效:

  1. Proxy 创建 ssh 隧道,proxy:9000 -> remote:22

    [proxy]$ ssh -g -L proxy:9000:localhost:22 remote
    
  2. 客户端连接:curl proxy_user@proxy -p 9000

    客户端应该使用 进行连接ssh,不是吗?

    [client] ssh -p 9000 proxy
    

但第一步可以使用简单的端口转发来设置iptables。第一次连接时通信已加密ssh

相关内容