我有一个盒子,里面有一个用户,比如说pmg
,我在它的一个容器中运行 Gitea,它有自己的 ssh 服务器和另一个用户git
。
目前,我已经配置主 SSH 服务器监听 22 端口,Gitea SSH 服务器监听 2201 端口。在此配置下,以下登录有效:
ssh [email protected] -p 22
ssh [email protected] -p 2201
但为了方便起见,我想使用相同的端口。有没有办法将用户的登录重定向git
到localhost: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
技巧,原因有二:
- 用于登录物理主机的密钥不会转发到容器
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