Я настроил сервер SSH (назовите его group2.fqdn
) с этим ForceCommand
директива:
Match Group group1
ForceCommand ssh -t group1.fqdn
Match Group="*,!local,!group2,!root"
ForceCommand ssh -t group3.fqdn
Это повреждается sftp
для пользователей не в group2
. Как я могу изменить это так, чтобы sftp
работы?
Таким образом: user1
из group1
делает:
sftp group2.fqdn
и они (возможно, имеющий необходимость ввести пароли дважды) затем на самом деле делают sftp
кому: group1.fqdn
. Это может быть сделано?
Контекст:
В нашей лаборатории у нас есть несколько серверов Ubuntu для каждой группы, но только одному предоставляют внешний доступ, таким образом, все группы должны были войти в сервер одной группы, и все кроме каждый затем вынужден к SSH в другой сервер. Мы раньше делали это с пользовательской оболочкой, но я пытаюсь использовать доступные параметры сервера вместо взломов. Пользовательский вариант оболочки не позволил SFTP, и это не делает также, но я хотел бы так или иначе заставить SFTP работать на все эти серверы.
Прием к получению работы SFTP должен передать команду SSH, полученную от клиента как есть к серверу. Я обнаружил это при проверении того, что происходит, когда Вы делаете scp
или sftp
для вопрос на Unix & Linux.
Теперь, моя конфигурация похожа:
Match Group group1
ForceCommand /usr/local/bin/ssh_wrapper group1
Match Group="*,!local,!group2,!root"
ForceCommand /usr/local/bin/ssh_wrapper group3
, Где /usr/local/bin/ssh_wrapper
:
#! /bin/sh
/usr/bin/ssh -t -o StrictHostKeyChecking=no $USER@${1:-default}.fqdn $SSH_ORIGINAL_COMMAND
От нескольких быстрых тестов, sftp
и scp
хорошо работают с этой конфигурацией.