Я хочу установить ssh-туннель между сервером Windows и клиентом без переадресации портов.
Я знаю команду для создания туннеля с переадресацией портов, но у меня есть только сервер и клиент, поэтому пересылку использовать не могу.
ssh user@serverip -L 5900:localhost:5900
Когда я использую эту команду, мой сеанс vnc не проходит через туннель. Следовательно, я хочу избежать использования переадресации портов.
Я ссылался на это руководство, и в соответствии с ним мой vnc должен проходить через туннель.https://websistent.com/how-to-use-putty-to-create-a-ssh-tunnel/
Но я хочу сделать то же самое без переадресации портов.
С помощью приведенной выше команды я сталкиваюсь с интерфейсом обратной связи.
Спасибо!!
Чувствую замешательство и возможное недопонимание.
Когда вы устанавливаете SSH-туннель с:
ssh user@server -L 5900:localhost:5900
... происходит следующее:
-L
)5900
)server
системаserver
система снова будет передавать трафик в исходной незашифрованной форме, чтобы localhost:5900
как server
система видит это. Это не localhost
вашей локальной системы, но localhost
из server
система. Вот почему ваше предложение «Но у меня есть только сервер и клиент, поэтому не могу использовать пересылку» не имеет смысла. Вы всегда можете перенаправить данные с локального хоста вашей локальной системы на локальный хост удаленной системы (или наоборот, используя -R
вместо того -L
).
Перенаправление портов - это причина, по которой SSH можно использовать для защиты других программ, которые не имеют встроенной поддержки SSH или какого-либо специального интерфейса для него.
Чтобы успешно использовать туннель, вы должны понимать, что теперь вы можете добраться до server
порт 5900, подключившись к локальному порту 5900 вашей клиентской системы. Другими словами, вы должны указать клиенту VNC подключиться к localhost:5900
подключиться к server
с использованием зашифрованного туннеля. Если вы скажете клиенту VNC подключиться к server:5900
вместо этого вы говорите ему обойти настроенный для него туннель и просто подключиться напрямую без преимущества шифрования SSH.
Вы также сказали, что не хотите использовать переадресацию портов. Что ж, тогда каким бы ни был ваш VNC (или любой другой) клиент, у него должен быть более продуманный способ использования туннеля, предоставляемого SSH. Насколько мне известно, есть две возможности:
поддержка прокси SOCKS4 / SOCKS5: вы устанавливаете SSH-соединение с
ssh пользователь @ сервер -D 1234
Теперь клиент SSH настроит прокси-сервер SOCKS на порт 1234 вашей локальной системы. Весь трафик, входящий в этот прокси-сервер, сначала будет проходить через зашифрованный туннель SSH на server
системы и оттуда (снова в незашифрованном виде) в любое место назначения, запрошенное клиентом VNC (или другим). Конечно, клиент VNC (или другой) должен быть настраиваемым для поддержки SOCKS4 или SOCKS5, и вы должны настроить его для использования прокси-сервера SOCKS в localhost:1234
использовать туннель SSH.
sshd
сервер как расширитель самого себя, чтобы устанавливать сетевые соединения оттуда куда угодно.