我希望有一个服务器透明地将传入的 ssh 连接从客户端转发到 docker 容器。这应该包括 scp、git transport 等等。这必须使用密钥,密码已停用。用户不应该看到服务器。更新:是的,这确实意味着用户不知道有服务器。配置必须完全在服务器上进行!
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$
我尝试使用文件command="ssh -p 42 user@localhost"
中的语法authorized_keys
,这有点工作,只是在第二个 ssh 连接中,用户必须输入他们的密码,因为身份验证没有通过(server
没有私钥user
)。scp
此外,即使输入密码,这种方法也不起作用。
我也听说过该tunnel=
命令,但我不知道如何设置它(并且联机帮助页没有帮助)。
我在 Arch 上使用 OpenSSH 7.5p1。