Какие варианты существуют для клиентов туннелирования SSH на iOS?

14

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

В Linux и OSX я использую ssh в командной строке, чтобы открыть ssh-туннели, чтобы я мог безопасно запускать клиент-серверные приложения.

Мне нужно сделать аналог на ios (запустить какой-то туннель в фоновом режиме, пока я запускаю клиентское приложение через этот туннель).

Какие инструменты или опции существуют, и перечисление поддерживаемых версий iOS будет еще более полезным, если вы сможете предоставить этот уровень детализации.

Как настроить службу туннелирования ssh на iOS?

kfmfe04
источник

Ответы:

10

iSSH поддерживает открытие туннелей. Например, я могу установить туннель на локальном порту 4444, который указывает на IP-адрес и порт 80. Открыв localhost: 4444 в Safari, загрузите этот веб-сайт через туннель. iSSH также имеет хорошую поддержку для сохраненных конфигураций и аутентификации с открытым ключом.

Согласно правилам App Store, iSSH разрешено сохранять соединение открытым только в течение 10 минут в фоновом режиме, поэтому примерно через 9 минут я получу уведомление, и туннель закроется, если я не переключусь обратно на иссх достаточно быстро.

С 2015 года iSSH больше не доступен. Такая же функциональность, вероятно, существует в других клиентах iOS SSH, но я сам не пробовал.

gabedwrds
источник
1
Ты за подробный ответ! Возможно, в будущем потребуется сильная конкуренция со стороны других ОС, чтобы заставить Apple отменить эти глупые ограничения ...
kfmfe04
1
Я сомневаюсь, что вы увидите, что это ограничение исчезнет в ближайшее время. Самая большая причина его существования - время автономной работы. Минимальные фоновые задачи означают, что пользователи могут безопасно заниматься своими делами, не беспокоясь о том, что другие приложения разряжают батарею. На устройстве, на котором одновременно работает только одна программа, это действительно имеет смысл. Суть в том, что он оптимизирует поведение пользователей , а не облегчает жизнь разработчикам.
Робматерс
Больше не могу найти iSSH в App Store ...
wdg
где я могу найти приложение iSSH? Есть ссылки?
Douglas.Sesar
Это кажется мертвым, и в последней версии у меня были некоторые проблемы. Я бы посмотрел в другом месте, но не могу рекомендовать что-то конкретное.
gabedwrds
5

Если вы ищете приложение для настройки переадресации локального порта, например:

ssh -f -L 3000:talk.google.com:5222 home -N

Вы можете проверить SSHTunnel , он позволяет вам легко управлять и точно контролировать ваши SSH-туннели. Может создавать и использовать прокси SOCKS5 (также называемый динамической переадресацией портов) или настроить переадресацию локальных портов.

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

Приложение для переадресации портов для iOS

Юрий Бушев
источник
4

vSSH поддерживает туннелирование. Вы можете настроить туннелирование в разделе «Переадресация портов» в настройках соединения. Поддерживается локальная, удаленная и динамическая пересылка (SOCKS proxy).

Вы можете использовать туннелирование даже без открытия сеанса SSH (в этом случае для пользователя ssh не нужны разрешения оболочки).

Из-за ограничений iOS приложение может работать в фоновом режиме только 10 минут (iOS 5,6) или 3 минуты (iOS 7). vSSH напоминает вам об этом тайм-ауте через уведомления.

кто я
источник
Добро пожаловать, чтобы спросить другого! Пожалуйста, прочтите справочный центр по вопросам саморекламы и включите заявление об отказе от ответственности, если вы являетесь автором продукта в своем ответе.
grg
3

Это невозможно в соответствии с текущими правилами iOS App Store (и вряд ли изменится в обозримом будущем). Приложения очень ограничены в том, что они могут делать в фоновом режиме, и сохранение постоянного соединения, которое требуется для туннеля SSH, не будет разрешено.

Некоторые приложения (например, клиенты VNC) имеют встроенную возможность туннелирования SSH, чтобы обойти это, но если приложения, которые вы используете, не включают его, единственный вариант (за исключением джейлбрейка) - это использовать встроенную iOS Возможность VPN. Он не поддерживает SSH, но поддерживает L2TP / IPSec, PPTP и некоторые другие варианты .

robmathers
источник
1
Забыл упомянуть, я не собираюсь продавать свое приложение для публики (в App Store) - это собственное приложение для личного пользования. Если действительно выясняется, что это невозможно в ios, я перейду на Android (я уверен, что это возможно, но мне придется подтвердить) - я склонен быть независимым от платформы ...
kfmfe04
1
Ну, хотя ваше приложение может не подчиняться правилам App Store, любое стороннее приложение из магазина будет. Это означает, что если вы не сделаете джейлбрейк, вы не сможете сделать это с помощью стороннего приложения . Конечно, вы можете использовать библиотеку SSH в своем приложении для непосредственного включения функциональности SSH, но как это сделать - вопрос программирования, более подходящий для StackOverflow .
Робматерс
+1 за эту альтернативу (я буду ее рассматривать перед переходом на Android) ... ... Я начинаю понимать, почему некоторым разработчикам не нравится разрабатывать в такой среде. Также спасибо за подсказку VPN - настройка VPN-сервера в Linux может оказаться менее трудоемкой, чем попытка получить ssh-туннель в ios.
kfmfe04
1

У меня это работает для клиента jabber (вроде) с приложением VSSH на сервере Ubuntu. Как только сессия SSH открыта, я запускаю top или просматриваю активную сессию, но через 3 минуты она, похоже, не работает. После этого мне нужно переключиться на приложение vssh, затем вернуться к клиенту jabber, и оно будет работать еще 3 минуты. Не лучшее решение для чата, но оно будет работать в крайнем случае.

подветренный
источник