基于用户的 ssh 端口转发

基于用户的 ssh 端口转发

我只想为用户将端口 22 (ssh) 转发到端口 7999(bitbucket 正在运行的位置)git,并为其他每个用户使用普通 sshd。我查看了 HAProxy 的 ssh 转发,但它无法让我区分每个用户。

我如何在服务器? 我不希望每个客户端都配置ProxyCommand他们的.ssh/config

答案1

我认为你不能这样做,因为在最初创建连接时用户是未知的,而这时你需要进行重定向。

您是否知道,任何可以放入每个用户的文件~/.ssh/config都可以放在/etc/ssh/ssh_config全局应用?也许您可以使用它来ProxyCommand全局配置。

答案2

您可以尝试以下方法(未经测试):

/etc/ssh/sshd_config(或类似)中,添加如下内容:

Match user git 
    ForceCommand ssh git@localhost -p 7999 

不要忘记重新加载/重新启动sshd。这应该会通过端口 7999 将连接“隧道”到 Bitbucket。或者,netcat也可以使用 ( ForceCommand nc localhost 7999)。

正如我所说,这还没有经过测试,但它可以帮助我将 ssh 连接重定向到另一台主机。

相关内容