我正在尝试根据传入的用户名在两个 ssh 服务器之间进行多路复用,即
ssh user1@testserver 将转到一个 sshd 实例,而 user2@testserver 将转到另一个。
这能做到吗?
我认为你可以这样做ForceCommand
,比如:
ForceCommand proxyscript
Run Code Online (Sandbox Code Playgroud)
在 /etc/sshd/sshd_config 中。这proxyscript
将是一个自定义脚本,它可以通过 ssh 连接到下一个服务器应该是什么,具体取决于运行它的用户。该脚本将有足够的信息来执行此操作,因为根据 sshd_config 的手册页,它将在用户的登录 shell 下运行,因此例如 $USER 将可用。
如果您只有一小部分固定用户想要执行此操作,那么您可以在 sshd_config 中对其进行配置,例如
Match User user1
ForceCommand ssh user1@host1
Match User user2
ForceCommand ssh user2@host2
Run Code Online (Sandbox Code Playgroud)
但我不知道这是否会正确地将传入连接的标准输出/输入连接到新 ssh 命令的标准输入/输出。