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, что приведет к низкой производительности в сети.
Это оно!