Ця відповідь ґрунтується на прийнятій, але додаючи деталі, які дозволили мені це зробити. Прошу вибачення за пояснення пішохода, оскільки це зовсім не моя експертиза.
Припустимо, у вас є два комп’ютери A
та B
. Ви хочете ssh
від A
до B
, і ви не можете робити будь - яких перенаправлення портів в маршрутизатори , підключені до них.
Як зазначено у прийнятій відповіді, для цього вам потрібен сервер S
: у комп’ютері B
ви дозволите ssh
з'єднання, що надходять від S
; і з комп’ютера A
ви отримаєте доступ до цього тунелю, S
щоб досягти B
.
Але як отримати цей сервер S
? Я знайшов serveo
(посилання: https://serveo.net/ ). Це дуже просте використання. Вам не потрібно нічого встановлювати чи реєструвати, і це безкоштовно. За даними веб-сайту, наступні кроки:
Придумайте псевдонім для комп’ютера B
. Наприклад, computer_B_alias
.
У комп’ютері B
виконати ssh -R computer_B_alias:22:localhost:22 serveo.net
.
Тепер ви можете отримати доступ до комп'ютера B
з комп’ютера A
, виконавши в комп'ютері наступне A
:, ssh -J serveo.net user@computer_B_alias
де вам доведеться замінити user
ім'я користувача в комп'ютері B
.
PS: Звичайно, ви робите пункт 2 автоматичним завданням при запуску комп'ютера B
.
PSS: Перш ніж спробувати це, переконайтеся, що ssh
встановлено на обох комп'ютерах. Для Ubuntu sudo apt-get install ssh
зробив би цю роботу.