Моя схема сети выглядит примерно так:
Теперь Алиса имеет доступ к SSH-шлюзу (теперь это просто шлюз) с:
ssh alice@external.ip
и файл авторизованных ключей на шлюзе выглядит следующим образом
#/home/Alice/.ssh/authorized_keys
command="ssh -t alice@web" ssh-rsa ABCD...E== alice@somehost
поэтому, когда Алиса пытается подключиться к шлюзу с помощью своего закрытого ключа, она фактически подключается к веб-серверу (компьютер-шлюз может подключиться к веб-серверу с помощью секретного ключа без пароля, поэтому он остается прозрачным).
Вопрос
Как я могу настроить это так, чтобы Алиса тоже могла просматривать все на веб-сервере?
Я знаю, что это создает отдельное соединение, но есть ли способ, чтобы это работало как обычный ssh, чтобы даже что-то подобное
-R12345:localhost:22
работало?
У меня была точно такая же проблема, как эта, но я заставил ее работать, не меняя ничего радикально
Все, что я сделал, это добавил $ SSH_ORIGINAL_COMMAND к шлюзу authorized_keys, чтобы пройти через все по цепочке к конечному серверу.
Итак, это:
становится:
-Q используется для подавления сообщения о закрытии соединения с компьютера конечной точки, поэтому оно не попадает в локальный вывод при локальном перенаправлении.
Затем вы можете использовать scp следующим образом:
Это дает дополнительное преимущество, позволяя пользователям передавать команды с помощью команд на сервер конечных точек и получать результат обратно в локальный сеанс, чтобы они могли перенаправить их в файл или направить их в другую программу.
Например:
Это работает, потому что кажется, что sshd заполняет переменную окружения $ SSH_ORIGINAL_COMMAND командой и, указанными клиентом ssh, но я не уверен, почему это чудесным образом позволяет scp проходить через компьютер конечной точки, а также команды.
источник
К сожалению, переадресация портов не поможет копировать файлы напрямую с рабочей станции Алисы на веб-сервер с помощью
scp
. В этом посте SO я объяснил, почему ssh (и scp, поскольку он использует те же механизмы аутентификации) не будет работать для соединений, переадресованных с помощью ssh.Можно было бы настроить сервер VPN на компьютере, который теперь работает как шлюз SSH, подключиться к нему, и тогда у вас будет прямой доступ к любой машине за брандмауэром.
источник