Ця відповідь ґрунтується на прийнятій, але додаючи деталі, які дозволили мені це зробити. Прошу вибачення за пояснення пішохода, оскільки це зовсім не моя експертиза.
Припустимо, у вас є два комп’ютери 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зробив би цю роботу.