У меня есть ящик с одним пользователем, скажем pmg
, и на нем я запускаю Gitea в контейнере с собственным ssh-сервером и другим пользователем, git
.
В настоящее время я настроил основной SSH-сервер для прослушивания порта 22, а SSH-сервер Gitea для прослушивания порта 2201. В этой конфигурации допустимы следующие логины:
ssh pmg@example.net -p 22
ssh git@example.net -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
Уловка по двум причинам:
В authorized_keys
сгенерированный Gitea выглядит примерно так:
# 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