Назад | Перейти на главную страницу

Перенаправить одного входа пользователя SSH на другой сервер SSH

У меня есть ящик с одним пользователем, скажем 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 Уловка по двум причинам:

  1. Ключ, используемый для входа на физический хост, не пересылается в контейнер
  2. В 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