将一个 SSH 用户登录转发到另一个 SSH 服务器

将一个 SSH 用户登录转发到另一个 SSH 服务器

我有一个盒子,里面有一个用户,比如说pmg,我在它的一个容器中运行 Gitea,它有自己的 ssh 服务器和另一个用户git

目前,我已经配置主 SSH 服务器监听 22 端口,Gitea SSH 服务器监听 2201 端口。在此配置下,以下登录有效:

ssh [email protected] -p 22

ssh [email protected] -p 2201

但为了方便起见,我想使用相同的端口。有没有办法将用户的登录重定向gitlocalhost:2201

我尝试在我的中使用以下子句/etc/ssh/sshd_config,但由于物理主机没有用户,因此失败git

Match User git
    ForceCommand ssh -t 127.0.0.1:2201

我不能直接创建一个用户git并为其设置密码,因为用户的身份验证git使用 Gitea 服务器用户可以自行配置的公钥。由于 Gitea 在容器中运行,我可以git在物理主机上创建用户,然后/home/git/.ssh/authorized_keys在物理主机上挂载到/data/git/.ssh/authorized_keys容器上,但这会带来自身的问题。

有一个更好的方法吗?

编辑: 事实证明我无法使用这个authorized_keys技巧,原因有二:

  1. 用于登录物理主机的密钥不会转发到容器
  2. Gitea生成authorized_keys的看起来像这样:

    # gitea public key
    command="/app/gitea/gitea serv key-1 --config='/data/gitea/conf/app.ini'",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII3dF5LGP++euujygyceesqOwq8jSaKHo4NPaC2BlcIW theta
    

相关内容