ініціювати ssh-з'єднання від сервера до клієнта


10

Ми можемо легко підключитися через sshвіддалену машину, яка має загальнодоступний IP.

Але зараз у мене віддалена машина без публічного IP, і мені потрібно підключитися до неї зі своєї машини, яка має публічний IP. Отже, віддалена машина повинна ініціювати це з'єднання (додати клієнта).

Мені це потрібно, тому що на комп’ютері є мій дідусь без публічного ІР, і йому іноді потрібна допомога в його системі.

У подібній ситуації в Windows я використовував VNC-з'єднання (від TightVNC), сервер TightVNC має опцію "Додати клієнта": користувач щойно ввів IP-адресу клієнта (тобто мій загальнодоступний IP-адресу), мій клієнт вже перебуває в "режимі прослуховування", і коли "сервер" додає клієнта, з'єднання ініціалізується.

Отже, чи можна виконати той самий трюк із SSH-з'єднанням?

Відповіді:


12

За визначенням, клієнт - це той, хто ініціює з'єднання.

Для вашої проблеми, я думаю, що простим рішенням було б побудувати зворотний тунель.

На комп’ютері без загальнодоступних IP-адрес:

ssh -R 2222:localhost:22 loginOfServerWithPublicIP@publicIP

Це з'єднує з сервером SSH і створює тунель від сервера з відкритим IP на порт 2222 до комп'ютера без публічного IP на порт 22 (SSH).

А потім на сервері:

ssh -p 2222 loginOfComputerWithoutPublicIP@locahost

З'єднання перенаправляється з порту 2222 сервера до порту 22 комп'ютера першим тунелем. Ви можете використовувати такий інструмент, як autosshзробити тунель більш стійким (тобто автоматично перезапустити його, коли він вимикається).


Дякую, дуже корисно і стисло. Детальнішу інформацію та інші корисні варіанти див. У відповіді на це запитання .
AstroFloyd
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.