NoMachine через SSH/Netcat прокси

Я туннелирую соединение nc с моим целевым хостом (example.com) через соединение ssh с моим шлюзом. Ниже мои настройки.ssh/config для этого соединения:

Host target
Hostname example.com
HostKeyAlias target
ProxyCommand ssh me@gateway /bin/nc example.com 22

Это замечательно и позволяет мне за один шаг перейти к целевому хосту. Я хотел бы иметь возможность туннелировать сеанс NX или VNC по этому соединению.

Кто-нибудь знает, как это можно сделать?

2 ответа

Решение

Я думаю, что вы должны использовать переадресацию портов, что SSH уже может сделать:

ssh -L 5900:example.com:5900 me@gateway

Это перенаправит порт 5900 с вашего локального компьютера на example.com через шлюз. Теперь просто "vncviewer localhost" с вашей локальной машины.

Вот как сеанс VNC может быть создан через ssh-туннель с межсетевым интервалом между клиентом и целевыми машинами:

/ etc / ssh / sshd_config (на целевой машине) должен иметь следующие строки:

X11Forwarding yes
XAuthLocation /usr/bin/xauth

Ваш путь к xauth может быть другим, но по умолчанию sshd смотрит в неправильном месте, поэтому это значение должно быть установлено.

.ssh / config (на клиентской машине):

Host example.com
Hostname foo.example.com
HostKeyAlias example.com
ProxyCommand ssh -t -C me@gateway.com /bin/nc %h 22

Тогда с клиента я могу запустить

 me@localhost$ ssh -X -C example.com 
Это запускает сеанс X на моем клиенте, а также ssh-соединение с example.com. Теперь, еще пара команд на удаленном хосте, чтобы вызвать VNC:

me@example.com$ vncserver :n 
me@example.com$ vncviewer -encodings "copyrect tight zlib corre rre raw" :n

В приведенных выше командах:n - это номер дисплея, с которого вы хотите запустить vnc, и дисплей, где vncviewer должен искать сеанс vnc. Поскольку это выглядит как локальное соединение с VNC, хорошей идеей будет указать некоторые лучшие кодировки, так как vncviewer по умолчанию будет использовать raw, что приведет к низкой производительности в сети.

Это оно!

Другие вопросы по тегам