SSH сервер на вашем iPhone. Три классных SSH клиента для iOS

В одном из предыдущих постов я обещал написать небольшой обзор способов просмотра файлов и папок (а также работы с ними) на телефонах iPhone. Пожалуй, пора уже это сделать. Сразу предупрежу, что речь пойдёт только об iPhone, на которых проделана операция jailbreak. В сети (в RU-нете, в том числе) достаточно много материалов о том, как произвести эту операцию независимо от того, используете вы официально куленный в России iPhone 3G или же привезённый откуда-то 2G, поэтому не буду перепечатывать эти материалы: просто воспользуйтесь вашим любимым поисковиком и найдёте необходимую информацию. Помимо этого, предложенные мною способы будут касаться исключительно взаимодействия с системой Mac OS X, несмотря на то, что один из этих способов подойдёт практически для любой операционной системы.

Итак, в первую очередь хотелось бы сказать пару слов о том, для чего вообще может понадобиться доступ к файловой системе вашего iPhone. Тут я выделю 3 основных причины:

  • использование iPhone в качестве носителя информации (wi-fi флэшки)
  • быстрый доступ к снимкам, сделанным камерой iPhone или скриншотам, сделанным на этом аппарате
  • банальное любопытство и, в некоторых случаях, исправление неточностей, допущенных разработчиками системы (об одной из них я писал тут)

Наверняка, есть и другие моменты, которых я не коснулся, и если они у вас появятся, то рецепты для осуществления желаемого подойдут и для них.

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

Итак, приступим.

AppleTalk: всё новое – это хорошо забытое старое

AppleTalk – это набор закрытых протоколов для связи компьютеров в сеть, разработанный компанией Apple Inc. в 80-х годах прошлого столетия, и впервые включённый в Macintosh в 1984 году. На текущий момент данный набор является устаревшим, но, тем не менее, поддерживается операционной системой Mac OS X. Но речь, собственно, не о самом AppleTalk, а о Netatalk – открытой реализации AppleTalk для *BSD систем.
После установки Netatalk при наличии Wi-Fi сети ваш iPhone превратится в обычный компьютер в «сетевом окружении», на который вы сможете зайти, как заходите на любой другой сетевой ресурс. Но сперва об установке.

В телефонах, подвергнутых операции jailbreak’a есть приложение Cydia – набор репозиториев с программами, позволяющими очень и очень многое. Запустите это приложение и нажмите на секцию Search внизу экрана. Начинайте набирать в строке поиска название приложения. По мере набора, результаты будут меняться, и в какой-то момент на экране останется только то, что вам нужно. Нажмите на найденное приложение и установите его (кнопка Install в правом верхнем углу экрана). Затем подтвердите установку (кнопка Confirm). По окончании установки, нажмите «Return to Cydia» или просто выходите из приложения Cydia нажав на Home. Теперь осталось подключиться к телефону.

Пользователям Mac OS X Leopard вообще ничего не нужно по этому поводу делать: телефон автоматически появится в разделе «Общий доступ» приложения Finder. (Если этого не произошло, удостоверьтесь, что в настройках Finder для бокового меню выставлена настройка, как наэтом рисунке, после чего всё будет работать). Теперь можно кликнуть по этому устройству, и, введя необходимые имя пользователя и пароль (об этом ниже), начать своё путешествие по файловой системе iPhone.

Пользователям Tiger и более младших систем для получения доступа к аппарату придётся совершить ряд несложных операций:

Узнайте IP-адрес вашего iPhone в текущей Wi-Fi сети. Для этого в настройках Wi-Fi сети телефона нажмите на стрелку в синем круге и посмотрите адрес:

Откройте Finder, выберите «Переход -> Подключение к серверу» (⌘+K) и введите IP-адрес телефона в строке, после чего нажмите «Подключиться». Система спросит имя пользователя и пароль (об этом чуть-чуть ниже), после чего предложит подмонтировать найденный раздел (соглашайтесь). Теперь у Вас появится новая подмонтированная папка, которая будет ссылаться на раздел на IPhone. К сожалению, я не могу предоставить скриншоты и описать последовательность действий более подробно, поскольку на всех Маках, имеющихся в моём распоряжении, установлена Mac OS X Leopard.

Теперь то, что касается имени пользователя и пароля. Вам на выбор доступны два из них – «root » и «mobile » с одинаковым паролем «alpine «. (Как поменять пароль, я расскажу в одном из следующих постов.) Пользователям, знакомым с системой прав и учётных записей на BSD/Linux системах, полагаю, всё итак понятно, остальным же вкратце скажу, что root – суперпользователь, от имени которого работают практически все системные процессы, а mobile – это, грубо говоря, пользователь данного телефона, со своим набором приложений, документов, а также довольно ограниченным набором прав.
Каким из пользователей iPhone OS заходить на телефон – решать, конечно, вам, поскольку от этого зависит тот набор возможностей, который вы получите. Но кого бы вы ни выбрали, действуйте аккуратно и не трогайте того, чего не знаете.

Начиная писать про способы подключения к iPhone, я совершенно не учёл, что это будет довольно объёмный материал. В результате я принял решение разбить этот пост на два поменьше, описав в каждом по одному из способов обмена файлами с iPhone. Данный пост является продолжением и завершением этого.
Итак, ещё один способ для обмена файлами с вашим iPhone.

SSH сервер на вашем iPhone

Этот способ подойдёт как пользователям Mac OS X, так и пользователям других операционных систем.
Помимо упомянутого выше приложения Cydia, в телефоне после jailbreak’а будет доступно приложение Installer . Оно, в общем-то, несёт в себе тот же смысл, что и Cydia – позволяет устанавливать приложения, минуя AppStore. Мне неясно, зачем было разделять подобный функционал на два независимых приложения, но приходится с этим мириться и пользоваться тем, что есть.
Итак, запустив Installer, отправляйтесь в поиск (Search) и выберите OpenSSH , после чего установите это приложение. Во время установки программа скажет вам, что для работыOpenSSH требуются дополнительные средства, такие как «BSD Subsystem» и «Community Sources». Если установку не предложит, установите их самостоятельно, после чего начинайте устанавливать OpenSSH.
Завершив установку вы сразу получите запущенный SSH сервер на вашем телефоне, который теперь автоматически будет стартовать после перезагрузки телефона. Теперь дело за малым – подключиться к телефону по SSH. Для этого вам потребуется узнать IP-адрес вашего iPhone в сети Wi-Fi, а как это сделать, написано и показано в предыдущем посте.

Теперь используя программу Terminal или какие-то другие программы вы сможетеподключаться к телефону по SSH . Что это даёт вам в практическом смысле? Навскидку в голову приходят несколько замечательных вещей, таких как:

  • сам SSH

Про любую из вышеперечисленных аббревиатур вы найдёте массу информации в сети, а я лишь коротко пробегусь по их возможностям и предназначениям:

SSH – это протокол для управления удалёнными машинами. Шифрует весь траффик и передаваемые пароли, ввиду чего пользуется большой популярностью.

SFTP (SSH File Transfer Protocol ) – протокол, для передачи файлов и других, связанных с файлами операций, использующий в качестве своего транспорта надёжный шифрующий протокол SSH.

SCP (Secure Copy Protocol ) – протокол для копирования файлов между компьютерами, использующий транспортом SSH. В Mac OS X программу scp для передачи файла (в нашем случае, на iPhone) можно запустить из терминала. Но об этом позже.

Итак, в предыдущем посте я уже рассказал, как узнать IP-адрес телефона в Wi-Fi сети и про имена пользователей и пароли, под которыми на телефон можно войти. Теперь дело за малым – определиться, какими программами и для чего вы это будете делать.

SSH

Откройте терминал (пользователи MS Windows могут воспользоваться бесплатной программой Putty) и наберите там команду

ssh root@<ваш_IP_адрес>

После чего программа попросит вас ввести пароль (если вы не меняли пароль, то вводите alpine , если же вы меняли пароль, то уже итак всё знаете, и читать данный пост вам незачем), спросит, действительно ли вы доверяете этому источнику (набирайтеyes ), после чего вы окажетесь … на вашем iPhone. Если вы определённо не знаете, что делать дальше, набирайте exit , что вернёт вас обратно на ваш компьютер. Переведите дыхание и дождитесь следующих постов – там я немного расскажу о структуре папок iPhone OS и их назначении. А пока почитайте про другие протоколы и программы.

SFTP

В Mac OS X есть терминальная программа sftp, позволяющая управлять файлами на iPhone (удалять, копировать), и с её помощью вы можете с любого Мака скачать с iPhone файлы, или закачать на него что-нибудь. С другой стороны, вы всегда можете воспользоваться программой Cyberduck или Transmit и создать там SFTP соединение, после чего работать с файловой структурой iPhone можно будет как с обычным FTP сервером. Учитывайте при этом, что время от времени IP-адрес вашего iPhone в сети может меняться (это зависит от настроек маршрутизатора), а на другом компьютере может попросту не оказаться программ для удобной работы с SFTP (кроме консольных). Поэтому я всё же рекомендую на всякий случай разобраться с тем, что даёт терминальная программа sftp, и какой список команд у неё есть.

SCP

Для этой программы подойдёт всё то, что я описал выше для SFTP. Есть программы для настройки соединений через этот протокол, обеспечивающие user-friendly интерфейс к результатам её выполнения, но я бы всё-таки рекомендовал изучить синтаксис, чтобы в любой момент иметь возможность залить или слить необходимые файлы.

Вот, в общем-то, и всё. Два предложенных мною способа связи с iPhone дополняют друг-друга и позволяют получать файлы с iPhone и заливать их туда практически с любой платформы без установки дополнительного программного обеспечения на компьютер. В ближайшее время я постараюсь описать те файлы и папки, которые могут быть вам полезны и позволят не только обогатить ваш телефон дополнительными возможностями (например, переносить на нём нужные файлы или обходить стандартные ограничения), но и исправлять некоторые ошибки. В общем, следите за обновлениями, а если что-то непонятно, задавайте вопросы в комментариях.

Одна из причин почему люди делают джейлбрек (jailbreak) своего телефона заключается в том, чтобы иметь возможность передачи файлов между компьютером и iPhone посредством протокола ssh. Данное краткое руководство повествует о том, как с помощью протокола ssh передавать рингтоны, фотографии, видео и любые другие файлы без использования USB-кабеля.

Несколько слов об SSH: это сетевой протокол прикладного уровня используемый в среде Unix/Linux, с помощью которого осуществляется удаленное управление операционной системой и на его базе организуются зашифрованные туннели. Также его можно использовать для передачи файлов также как и протокол FTP. Так что в данном случае мы осуществляем удаленное управление сервером на базе Iphone.

Установка поддержки SSH с помощью Cydia

Наверняка стает вопрос, почему надо использовать ssh, коли он разработан для Unix систем? Но поскольку iPhone OS является кастрированной версией Mac OS X, которая в свою очередь базируется на ядре UNIX системы, то можно сказать что iPhone OS это облегченная версия UNIX, по этой причине мы и можем использовать SSH.

Поскольку компания Apple не включает поддержку sshв телефоны iPhone мы вынуждены, предварительно сделать jailbreak системы. После того как мы произвели джейлбрейк, то можем спокойно переходить к установке ssh: заходим в Cydia и в поиске задаем “OpenSSH” пакет. Нажимаем иконку Install и устанавливаем на iPhone, после чего перегружаем телефон. Когда система загрузится, никаких новых иконок не появится, но тем не менее утилита SSH поднимается в автоматическом режиме и прослушивает удаленные запросы на предмет установления соединения.

*** У Вас наверняка включена автоблокировка телефона? Дело в том, что в процессе передачи файла по SSH телефон должен быть в активном состоянии, для этого необходимо отключить автоблокировку: идем Settings -> General -> Auto-Lock и выставляем Never.

Передача файлов с использованием SSH

В вашем iPhone уже имеется поддержка SSH и он прослушивает входящие покеты на предмет SSH запроса. Перед тем как передавать файлы на ваш iPhone, необходимо задать IP адрес для iPhone.

Проверить IP адрес можно по следующему пути Settings -> Wi-Fi. Нажимаем на имя активного соединения WiFi и просматриваем подробности. Вы видите IP адрес телефона и его сетевые настройки, там же вы можете задать настройки сети для вашего iPhone. В нашем примере IP адрес будет 10.0.1.5.

Поскольку IP адрес вам уже известен, переходим к следующему шагу- установке подключения к iPhone с компьютера.

Подключения компьютера к iPhone с помощью WinSCP

Для пользоватей Windows я бы порекомендовал скачать программу WinSCP , которая является свободнораспространяемым SSH клиентом для Win XP/Vista. Установка WinSCP элементарна и ни чем не отличается от установки стандартной программы в среде Windows. Для пользователей Unix и Mac систем- в самих системах есть встроенная поддержка ssh и встроенный клиент.

Установив приложение, запускаете WinSCP и, чтобы подключиться к iPhone, нажимаете New. В пункте host name, пишите IP адрес вашего iPhone. В user name и password, используете стандартную связку “root” and “alpine”. Остальные поля не трогаете. После этого нажимаете “Login” для установки соединения с вашим iPhone. Нажимаете “Yes” если вам будет предложено добавить host key в кэш.

*** Вместо кнопки “Login” вы можите нажать “Save…” с тем чтобы сохранить сессию для дальнейшего использования.

Несовместимость большинства твиков от iOS 8 с новой прошивкой. По этой причине разработчикам расширений придется потратить огромную кучу времени на оптимизацию своих твиком с новой ОС, причем этот процесс может затянуться на долгие месяцы.

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

На операционную системы iOS 8 с джейлбрейком существовало сразу три хороших терминала: Terminal, MobileTerminal, и WhiteTerminal. Из-за особенностей iOS 9, ни один из них не работает на iPhone и iPad с этой прошивкой. Получается, что получить доступ над своим устройством не получится, но решение все же есть.

Чтобы пользоваться терминалом на iOS 9 нам потребуется компьютер на Windows, Linux, или OS X. Для начала необходимо запустить на «яблочком» устройстве магазин Cydia, и произвести установку джейлбрейк-твика OpenSSH . Это расширение позволяет удаленно подключаться к «яблочному» смартфону или планшету, чтобы затем иметь возможность легко управлять им с помощью команд.

Установив этот твик на свой iPhone или iPad, важно обязательно перезагрузить устройство. Теперь подключаем компьютер и испытуемое устройство к одной Wi-Fi сети. На смартфоне или планшете с iOS открываем «Настройки» - Wi-Fi. Справа от подключенной Wi-Fi сети будет значок буковки i . Нажимаем на него, и запоминаем информацию из графы «Адрес IP». В нашем случае это 192.168.1.103 .

Теперь запускаем на компьютере под управлением Linux или OS X приложение «Терминал». При использовании операционной системы Windows рекомендуем использовать программу PuTTY. Вводим в терминале команду для подключения к iPhone, iPad или iPod Touch. Она выглядит следующим образом:

ssh [email protected]

Адрес после знака @ необходимо заменить на свой из графы «Адрес IP», который мы узнавали ранее. После ввода этой фразы потребуется ввести пароль от своего гаджета. По умолчанию он: alpine (без точки на конце).

Если все прошло удачно, то после ввода пароля появится примерно такая строчка: iPhone-Sergej:~ root# . Также подключиться к своему смартфону или планшету можно непосредственно с другого устройства. Для этого можно воспользоваться любым SSH клиентов доступа. Для iOS самым лучшим считается хорошо известный за рубежом Prompt 2.

До 10 марта включительно у всех желающих есть уникальная возможность Xiaomi Mi Band 3, потратив на это всего 2 минуты своего личного времени.

Присоединяйтесь к нам в

Чтобы получить доступ к устройству iPhone/iPad (iOS 5; iOS 6) по SSH необходимо, чтобы:

  • устройство было взломано с помощью jailbreak;
  • установлен пакет OpenSSH;
  • на клиенте установлена программа для работы по протоколу SSH.

0. Взлом с помощью jailbreak

Как происходит jailbreak, я рассматривать не буду. Эту информацию без труда можно найти в сети.

1. Установка пакета OpenSSH

В Cydia необходимо установить пакет OpenSSH из стандартных репозиториев:

Если программа SBSettings не установлена, то служба OpenSSH сразу должна работать.

Если программа SBSettings установлена, то, возможно, SSH служба отключена и её необходимо включить в настройках этой программы.

2. Доступ с компьютера

Совет: если знаете как, то назначьте резервирование IP-адресов по протоколу DHCP в своей локальной сети мобильным устройствам.

Следует посмотреть IP-адрес устройства (Настройки > Wi-Fi > Ваша сеть > Адрес IP):


Желательно, выполнить команду ping на этот IP-адрес:


Если ответа нет, то ищите причину. Обычно, это блокировка экрана устройства (см.конец статьи). Если всё в порядке, то можно настраивать доступ через SSH.

Есть два способа - через кабель и без кабеля.

2.1 Без кабеля

Можете подключаться к устройству по определённому выше IP-адресу и порту 22. Имя пользователя root. Пароль по-умолчанию alpine.

Обычно, используют программы PuTTY и WinSCP . PuTTY позволяет выполнять команды на устройстве:


а WinSCP предоставляет доступ к содержимому файловой системы в виде классического двухпанельного проводника:


Любителям программы Total Commander могу посоветовать плагин SFTP. Как его установить . Открываем панель файловых плагинов и видим плагин Secure FTP:


В справке сообщается:
F7: создать новое соединение
F8/Del: удалить соединение
Enter: подключиться
Alt+Enter: изменить опции

Создав с помощью F7 новое соединение:


Изменяем его настройки:

Разблокируем экран устройства iPhone, чтобы Wi-Fi соединение было активно, и подключаемся:

2.2 Через кабель

Пакет OpenSSH также должен быть установлен и служба должна быть запущена. Для доступа к устройству потребуется специальная утилита itunnel_mux . Эта утилита позволяет открыть локальный порт SSH, а все данные перенаправить по кабелю в устройство. Например, следующая команда открывает на устройстве порт 22, а на локальной машине порт 9990 и транслирует все пакеты между этими портами:
itunnel_mux --lport 9990 --iport 22 Следующий шаг - это подключиться к порту 9990, используя локальный адрес машины 127.0.0.1. Можно использовать вышеуказанные программы PuTTY и WinSCP.

Например, я написал командный файл, для запуска утилиты itunnel_mux и последующим подключением WinSCP (идея взята отсюда):
start /min itunnel_mux --lport 9990 --iport 22 start WinSCP.exe sftp://[email protected]:9990
По окончанию работы следует закрыть окна обоих приложений.

WinSCP + itunnel_mux + командный файл можно скачать по ссылке .

3. Разное

Примечание 1: подключиться к Wi-Fi через сеть сотовой связи вполне возможно. Конечно, для этого нужно знать актуальный IP-адрес устройства. Если вы передвигаетесь и сигнал телефона переходит на разные вышки, то в общем случае адрес будет меняться и постоянного соединения не будет.

Примечание 2: чтобы обезопасить устройства от доступа нежелательных лиц, требуется сменить пароль. Сделать это можно выполнив команду passwd на устройстве.
iPhone-Maxim:~ root# passwd (вводим команду passwd) Changing password for root. New password: _____ (вводим новый пароль) Retype new password: _____ (вводим новый пароль ещё раз) iPhone-Maxim:~ root#
Также через SBSettings можно отключать SSH доступ, когда он вам не требуется.

Примечание 3: если iPhone/iPad теряют связь по SSH, то отключите автоблокировку или сделайте её достаточно длинной:
Настройки > Основные > Автоблокировка > Указать нужный интервал.

Проблемы с серверами обычно случаются не тогда, когда сидишь в теплом офисе за компьютером, а когда ты в 50 км от города на даче и из техники у тебя только мобильный телефон. Для таких случаев необходимо иметь на своем iPhone хороший SSH-клиент.

Prompt 2

Продукт позиционирует себя как максимально легкий в использовании и предельно безопасный. Пользователи называют его идеальным SSH-клиентом.

Достоинства :

  • доступ к приложению по отпечатку пальца;
  • возможность группировать закладки с данными доступа к разным серверам по папкам;
  • кнопка срочной синхронизации всего и сразу;
  • возможность создавать кнопки в панели инструментов для повторяющихся действий;
  • генератор приватных ключей;
  • удобный менеджер для управления приватными ключами.

Недостатки : не обнаружено, за исключением высокой стоимости.
Цена : 479 рублей.
Страница в AppStore

У этого клиента нет такого количества интересных фишек для безопасности, как у вышеописанного собрата. Его главное достоинство – внешний вид. SSH-клиент Cathode выглядит как терминал из фильмов про хакеров 90-ых годов. Даже когда просто пингуешь на нем сервер, чувствуешь себя крутым взломщиком.

Достоинства :

  • роскошные ретро-шрифты;
  • поддержка нескольких соединений одновременно;
  • создание закладок с данными для подключения к серверам;
  • менеджер приватных SSH-ключей.

Недостатки: критических недостатков нет, но стоит отметить не столь удобное управление, как у Prompt 2.
Цена: 279 рублей.
Страница в AppStore

Serverauditor

Еще один качественный SSH-клиент с русскоязычным интерфейсом. У него намного меньше фич для обеспечения безопасности, но если вы работаете не в ФСБ, то имеющегося ассортимента вам будет вполне достаточно.


Достоинства :

  • поддержка PuTTY ключей;
  • импорт ключей через ITunes Files Sharing;
  • настройка ПИН-кода для входа в приложение;
  • генератор RSA/DSA ключей;
  • объединение закладок с хостами в папки;
  • напоминание об активных сессия перед закрытием соединения, если приложение в свернутом состоянии.

Недостатки: не обнаружено, с точки зрения удобства интерфейса не сильно уступает Prompt 2.
Цена: 349 рублей (некоторые функции доступны в бесплатной бета-версии).