Предположим, у вас есть SSH-сервер, доступный во внешнюю сеть, и git-сервер (или аналогичный сервер, использующий службу на основе SSH), который не является общедоступным, но доступен локально для SSH-сервера.
Ваша цель: в два раза:
Сделайте так, чтобы любой клиент мог подключаться по SSH к SSH-серверу с определенным идентификационным ключом и проходить аутентификацию на локальном SSH-сервере для определенного user@public-ssh-server (например, git@public-ssh-server пересылается на git@private-ssh-server с любым произвольным идентификационным ключом, который был предоставлен общедоступному SSH-серверу). Ожидается, что клиент будет неосведомленным пользователем службы git (или аналогичной) и не сможет редактировать свою конфигурацию SSH.
Сделайте так, чтобы авторизованный клиент-администратор мог подключаться по SSH к публичному SSH-серверу с другим конкретным пользователем @public-ssh-server (например, root@public-ssh-server предоставляет оболочке доступ к общедоступному SSH сервер).
Подходы, которые я пробовал, но оказались нежизнеспособными:
Принуждение пользователей указывать переходы по SSH (например, с помощью ssh ... -J ... OpenSSH). Нежелательно, так как это не требует от пользователей дополнительных настроек.
Размещение команды="/usr/bin/ssh git@private-ssh-server $SSH_ORIGINAL_COMMAND" ssh-ed25519 publickeyofuser username@client в публичном SSH-сервере /home/git/authorized_keys. Это не работает, поскольку, похоже, ключ идентификации SSH не пересылается на частный сервер SSH. Кроме того, потребуется настроить еще одну строку открытого ключа в файлеauthorized_keys публичного SSH-сервера для каждого авторизованного пользователя, хранящегося на частном SSH-сервере, что нежизнеспособно.
Я предполагаю, что это невозможно с ssh systemctl/
, поэтому я надеюсь, что для этой конкретной цели существует программное обеспечение. Я намерен добиться этого на сервере под управлением Ubuntu 25.10, но если такие решения возможны только в другом дистрибутиве, я тоже готов попробовать это.
Предположим, у вас есть SSH-сервер, доступный во внешнюю сеть, и git-сервер (или аналогичный сервер, использующий службу на основе SSH), который не является общедоступным, но доступен локально для SSH-сервера. [img]https://i.sstatic.net/65bEd9HB.png[/img]
Ваша цель: в два раза: [list] [*]Сделайте так, чтобы любой клиент мог подключаться по SSH к SSH-серверу с определенным идентификационным ключом и проходить аутентификацию на локальном SSH-сервере для определенного user@public-ssh-server (например, git@public-ssh-server пересылается на git@private-ssh-server с любым произвольным идентификационным ключом, который был предоставлен общедоступному SSH-серверу). Ожидается, что клиент будет неосведомленным пользователем службы git (или аналогичной) и не сможет редактировать свою конфигурацию SSH.
[*]Сделайте так, чтобы авторизованный клиент-администратор мог подключаться по SSH к публичному SSH-серверу с другим конкретным пользователем @public-ssh-server (например, root@public-ssh-server предоставляет оболочке доступ к общедоступному SSH сервер).
[/list] Подходы, которые я пробовал, но оказались нежизнеспособными: [list] [*]Принуждение пользователей указывать переходы по SSH (например, с помощью ssh ... -J ... OpenSSH). Нежелательно, так как это не требует от пользователей дополнительных настроек.
[*]Размещение команды="/usr/bin/ssh git@private-ssh-server $SSH_ORIGINAL_COMMAND" ssh-ed25519 publickeyofuser username@client в публичном SSH-сервере /home/git/authorized_keys. Это не работает, поскольку, похоже, ключ идентификации SSH не пересылается на частный сервер SSH. Кроме того, потребуется настроить еще одну строку открытого ключа в файлеauthorized_keys публичного SSH-сервера для каждого авторизованного пользователя, хранящегося на частном SSH-сервере, что нежизнеспособно.
[/list] Я предполагаю, что это невозможно с ssh systemctl/[code]sshd[/code], поэтому я надеюсь, что для этой конкретной цели существует программное обеспечение. Я намерен добиться этого на сервере под управлением Ubuntu 25.10, но если такие решения возможны только в другом дистрибутиве, я тоже готов попробовать это.