Хорошо, название может быть немного запутанным, поэтому вот что я пытаюсь достичь.

У меня есть несколько машин типа A, которые будут подключаться к серверу B. Все машины типа A будут иметь некоторый GUID.

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

Я могу перенести его так:

ssh -R 3000:localhost:22 server_host -p 58122

Но это не совсем удобно, так как я должен угадать неиспользуемый порт.

Я бы предпочел что-то вроде этого:

ssh -R /tmp/nodes/${guid}.sock:localhost:22 server_host -p 58122

Тогда как то так с сервера Б:

ssh /tmp/nodes/${guid}.sock

Но первая команда всегда возвращает это:

Warning: remote port forwarding failed for listen path /tmp/guid.sock

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

Основная цель состоит в том, чтобы иметь возможность создать SSH-туннель от узловых компьютеров A к серверу B. Причина в том, что эти машины скрыты за сетью, и нет никакого другого реального способа создания туннеля от сервера B к узлам A ,

Я даже не уверен, что ssh может подключиться напрямую к сокету, поэтому, если есть альтернатива переадресации портов, я был бы рад узнать.

0