【发布时间】:2025-12-02 06:50:02
【问题描述】:
我希望有一个服务器透明地将传入的 ssh 连接从客户端转发到 docker 容器。这应该包括 scp、git 传输等。这必须与密钥一起使用,密码已停用。用户不应该看到服务器。 更新:是的,这确实意味着用户不知道有服务器。配置必须完全在服务器上进行!
client -----> server -----> container (actual connection)
client -------------------> container (what the user should see)
所以,给出的是这样的:
user@client$ ssh user@server
user@server$ ssh -p 42 user@localhost
user@container$
但我想要的是这样的:
user@client$ ssh user@server
user@container$
我尝试在authorized_keys 文件中使用command="ssh -p 42 user@localhost" 语法,这有点工作,只是在第二个ssh 连接中,用户必须输入他们的密码,因为身份验证没有通过(server 没有有user的私钥)。
此外,即使输入密码,这种方法也不适用于scp。
我也听说过tunnel= 命令,但我不知道如何设置它(并且联机帮助页帮助不大)。
我在 Arch 上使用 OpenSSH 7.5p1。
【问题讨论】:
标签: docker ssh forwarding authorized-keys