Перенаправить X11 через два SSH-туннеля

Может быть, вам стоит попробовать добавить первый запуск после загрузки, например:

[Timer] OnBootSec = 15min {{ 1}} OnUnitActiveSec = 2m

3
22.09.2016, 18:47
3 ответа

добавьте это в свой ~ .ssh / config:

Host BviaA
  HostName      hostB
  ProxyCommand  ssh user@hostA nc %h %p 2> /dev/null

Тогда ssh -X user @ BviaA должен работать

Обратите внимание, что в разделе конфигурации выше я использовал Host BviaA , чтобы было более очевидно, что происходит. Вы также можете использовать Host hostB , чтобы он работал полностью прозрачно: ssh -X user @ hostB (Как будто шлюз не нужен.)

Альтернативно как однострочный вариант для тестирование без каких-либо изменений конфигурации:

ssh -X -oProxyCommand="ssh user@hostA nc %h %p" user@hostB
4
27.01.2020, 21:18

Вы можете перенаправить порт через A. Используйте

$ ssh -Nf -L2222:B:22 A

, чтобы запустить и фоновый процесс ssh, который будет перенаправлять с вашего локального компьютера на B через A. Затем подключитесь к B, используя

$ ssh -p 2222 -X localhost
1
27.01.2020, 21:18

Большое спасибо @rudimeier за ответ.

У меня была проблема с опцией nc при использовании ssh, но этот вариант (, основанный на том, что @aDroid объяснил здесь ), у меня работал. Так что это, по сути, тот же один -линейный ответ @rudimeier для более новых версий OpenSSH:

$ ssh -X -oProxyCommand="ssh userA@host.address.A -W %h:%p" userB@host.address.B

@user4556274 ответ у меня тоже сработал (спасибо и вам ).

Я просто добавил бы имена пользователей на обоих этапах, чтобы объяснить, как это работает для новичков вроде меня (после ввода 1-й команды порт 2222 локального хоста будет вести себя так, как если бы это был порт 22 на машине B; поэтому во второй команде мы передаем имя пользователя машины B):

$ ssh -Nf -L2222:host.address.B:22 userA@host.address.A
$ ssh -p 2222 -X userB@localhost
0
27.01.2020, 21:18

Теги

Похожие вопросы