SSH повернеться до локальної машини з віддаленого сеансу SSH


12

Я намагаюся зробити щось досить незвичне (для мене все одно) з SSH, і я не можу змусити його працювати, сподіваюся, ви можете допомогти.

Я хочу встановити з'єднання з віддаленим сервером зі свого Mac за допомогою SSH. Все йде нормально. Тепер складний біт із встановленням з'єднання з віддаленим сервером я хочу ініціювати з'єднання з віддаленого сервера НАЗАД до локальної машини. Я знаю, божевільний. В основному мені потрібно перейти через ці обручі, щоб мати можливість переглядати віддалений сервер, а потім відправити інформацію про файл назад на свою локальну машину, щоб це можна було вирішити за допомогою програми на локальній машині. Сподіваємось, це має сенс!

На даний момент, якщо я SSH повернувся на локальну машину, як тільки я ввійду на віддалений сервер, термінал просто сидітиме там, кружляючи, помилок навіть із -v.

Я намагаюся дізнатися, куди мені слід дзвонити, дивлячись на висновок змінної $ SSH_CLIENT, але я перебуваю на стандартному підключенні до Інтернету ванілі (немає статичної ip адреси). Я думаю, що це може бути причиною проблеми.

Речі, які я встановив: я перебуваю на Mac (OS X 10.6.4) і ввімкнено віддалений вхід у системні налаштування / спільний доступ. Якщо я спробую ввести SSH у свій комп'ютер з іншої машини в мережі, я можу підключитись без проблем. Якщо я спробую SSH на інший сервер (не мій локальний автомат) з віддаленого сервера, я можу зв'язатись без проблем.

Отже, вищезазначені факти змушують мене думати, що я чітко розуміюсь щодо брандмауерів тощо на локальних та віддалених машинах.

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

Будемо дуже вдячні за будь-яку допомогу, посилання або загальне натискання в правильному напрямку!


Ви можете переглядати віддалений сервер за допомогою ssh. Або ви намагаєтеся використовувати afs? Як щодо портфордингу та / або sftp / scp?
Андреас Рем

Привіт там. Так, я можу без проблем підключатись та переглядати структуру каталогів віддаленого сервера. Я не впевнений, що ти маєш на увазі, вибач. В основному план такий: я хочу перейти на віддалений сервер Linux з локального Mac, перегляньте файл, а потім зможу передати його назад встановленому з'єднанню (або створити нове з'єднання на основі вже встановленого) на локальна машина, де додаток Mac буде читати / редагувати дані, перш ніж надсилати їх назад на сервер. Я не особливо метушився, як я цього домагаюся з точки зору залучення інших протоколів.
i0n

Відповіді:


9

Якщо при підключенні до місцевого розташування це дозволяє вам увійти до вивішування, то це не відповідь. Якщо у вас не так далеко, ви, ймовірно, не повертаєтесь до свого Mac (або не потрапляєте нікуди або не потрапляючи на SSH на шлюз). Спробуйте зворотний тунель (для нього знадобиться GatewayPorts увімкнено в sshd_config на вашому сервері, але я вважаю, що це за замовчуванням):
you@yourMac$ ssh -R 2000:localhost:22 user@remoteserver
це повинно дозволяти вам підключатися до сервера як звичайне, але також відкривати тунель, щоб ви могли підключитися назад порт 2000 (будь-який порт понад 1024 повинен працювати), такyou@yourserver$ ssh -p2000 user@localhost

EDIT: Змінено ім'я хоста на localhost


2
Ви повинні використовувати user @ localhost в останній команді
b0fh

1
Це було корисно, це мало не приводило мене туди, де я хочу бути! Я можу встановити з'єднання із зворотним тунелем, як вище, а потім ssh назад у свій локальний Mac за допомогою ssh -p 2000 i0n @ localhost. Тож як я можу досягти цього, не знаючи заздалегідь, що мені потрібна ця функціональність? Іншими словами, з існуючим і стандартним ssh-з'єднанням. Чи можливо це?
i0n

Дякую b0fh, я був на шляху до ліжка, коли я написав, що =) i0n - інстинктивно хочу сказати, що ви не можете змінити існуюче з'єднання для цього, але PuTTY може це зробити, тому повинен бути спосіб. Ви завжди можете надіслати новий SSH-з'єднання з тунелем, коли вам потрібно подати трубу назад, але я здогадуюсь, що це буде зроблено програмно, щоб це не було можливим. Подивіться на очікування - якщо будь-яка мова може бути готовою до SSH, це буде саме так.
Джеймс Л

2

Чи доступна ваша локальна машина з сервера? Ви можете пінг це? Я прошу, тому що те, що ви робите, має працювати, якщо ваша машина доступна. Ваш сервер знаходиться в Інтернеті чи в локальній мережі, тієї ж підмережі?

У будь-якому разі, якщо вам потрібно лише редагувати файл, чому б вам просто не скопіювати файл scp для копіювання файлу на локальну машину? Ви можете використовувати ssh для пошуку файлу на віддаленому сервері, і коли у вас є його шлях, введіть у свою локальну машину (в іншому терміналі):

scp user@server:/path/to/file/on/server /local/path/to/save/file

Щоб повернути файл назад, ще раз скапуйте перемикання контурів.

Obs: для використання scp не потрібне початкове ssh-з'єднання - воно створить нове

Це вище, якщо вам потрібно отримати доступ до нього в терміналі. У Linux (і, звичайно, на Mac, але я не знаю, як це зробити), ви можете змонтувати віддалене розташування ssh в Мережах і використовувати з'єднання під час використання локального диска (це sftp і з'єднання знаходиться у формі: sftp://user@server:/path/to/mountі я думаю, що це те, що вам потрібно замість віддаленого термінального з'єднання, щоб ви могли редагувати файл безпосередньо за допомогою програми Mac.


1

Ви також можете поглянути sshfs( а для цього вам потрібен MacFuse ). Це дозволяє монтувати каталоги на віддаленій машині та отримувати доступ до них так само, як і звичайні папки на вашій машині. Крім цього, ви все ще можете зайти sshв машину та створити / шукати потрібні файли. Передача їх буде тоді простою, як передача локальних файлів.

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