Я туннелирую соединение NC к моему целевому хосту (example.com) через соединение SSH с моим шлюзом. Ниже приведены мои настройки .ssh / config для этого подключения:
Host target
Hostname example.com
HostKeyAlias target
ProxyCommand ssh me@gateway /bin/nc example.com 22
Это замечательно и позволяет мне подключиться к целевому хосту по ssh за один шаг. Я хотел бы иметь возможность туннелировать сеанс NX или VNC через это соединение.
Кто-нибудь знает, как это можно сделать?
Вот как можно создать сеанс 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.comThis starts an X session on my client as well as an ssh connection to example.com. Now, just a couple more commands on the remote host to bring up 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, что приведет к снижению производительности в сети.
Это оно!
Я думаю, вам следует использовать переадресацию портов, которую уже может сделать SSH:
ssh -L 5900:example.com:5900 me@gateway
Это перенаправит порт 5900 с вашего локального компьютера на example.com через шлюз. Теперь просто "vncviewer localhost" со своего локального компьютера.