Усе, що вміє застосунок, приблизно в тому порядку, у якому це знадобиться: від першого хоста SSH до керування четвертим дисплеєм Mac, який лишився вдома. Написано для SharkTTY на iPhone та iPad і для безкоштовного компаньйона SharkTTY Desk на Mac.
Щоб дістатися власних серверів, обліковий запис не потрібен. Усе описане тут — безкоштовне.
SharkTTY відкриває оболонку на всьому, де працює стандартний sshd — на VPS, NAS, Raspberry Pi чи робочій станції. Для звичайного SSH на тому боці нічого встановлювати не треба. Mosh і ET потребують власного невеликого серверного пакета, і обидва необов'язкові.
Відкрийте налаштування, перейдіть на вкладку «Хости» й торкніться + вгорі праворуч. У новому хості є чотири поля, які треба заповнити, і кілька таких, що спершу можна пропустити.
У пароля два режими. «Зберегти пароль» тримає його в iOS Keychain цього пристрою; з увімкненою синхронізацією він мандрує разом з вами через iCloud Keychain, наскрізно, ніколи не проходячи через наш сервер. «Вводити під час підключення» не зберігає нічого й питає щоразу. Якщо сервер надсилає власні запити — одноразовий код, апаратний токен — оберіть натомість клавіатурно-інтерактивну / 2FA: ви відповідаєте на запити під час підключення, і нічого не зберігається.
Збережіть хост і торкніться його, щоб підключитися. У списку хостів одне торкання вибирає, подвійне — одразу підключає.
Уже маєте файл конфігурації
Налаштування → Хости → «Імпортувати з конфігурації SSH» приймає вставлений ~/.ssh/config або обраний вами файл. Імпортуються лише псевдоніми хостів, адреси, імена користувачів і порти — ніколи паролі чи приватні ключі. Записи з ProxyCommand пропускаються, а запис із ProxyJump імпортується як пряме з'єднання, доки ви вручну не вкажете проміжний хост.
Ключі живуть на вкладці «Обліковий запис» у налаштуваннях. Торкніться + й оберіть один із трьох шляхів: згенерувати ключ, додати, вставивши текст, або імпортувати з файлу.
Приватні ключі лишаються в iOS Keychain. Увімкніть для ключа синхронізацію через iCloud — і він потрапить на ваші інші пристрої через iCloud Keychain, тим самим наскрізним каналом, яким Apple передає паролі, а не через наші сервери. Якщо ви увійдете в хмарний обліковий запис SharkTTY, синхронізуються ваші хости, скрипти, під'єднані сховища та шаблони, а паролі, приватні ключі й парольні фрази — принципово ні.
Повернувшись до редактора хоста, у розділі «Автентифікація» → «Метод» → «Ключ» ви обираєте ключ для цього хоста. Якщо список порожній, редактор скаже про це й спершу відправить вас на вкладку «Обліковий запис».
Уперше дістаючись сервера, SharkTTY отримує його ключ хоста й показує відбиток SHA256 разом із кнопкою «Довіряти й підключитися». Звірте його з відбитком, який оприлюднив ваш адміністратор, або з тим, що виводить ssh-keygen -lf на самому сервері. Щойно ви його приймете, він запам'ятовується.
Якщо цей ключ колись зміниться, з'єднання зупиниться з попередженням, а не продовжиться. Чесне прочитання таке: сервер перевстановили або змінили йому ключ — або хтось сидить між вами й ним. Тисніть «Довіряти новому ключу й перепідключитися» лише тоді, коли ви знаєте, що саме сталося.
Щоб свідомо перезакріпити сервер — після перезбирання, яке ви виконали самі — відкрийте хост і скористайтеся дією «Очистити збережений ключ хоста». Наступне з'єднання попросить підтвердити новий відбиток із чистого аркуша.
Усі три дають вам інтерактивну оболонку. Різняться вони тим, що потрібно на сервері, і тим, що стається, коли мережа змінюється під вами.
| Транспорт | Потрібно на сервері | Переживає зміну мережі | Варто знати |
|---|---|---|---|
| SSH (напряму) | Нічого, крім sshd | Ні | Працює з будь-яким хостом, до якого ви вже можете під'єднатися через ssh. |
| Mosh (прискорений) | mosh-server | Так, через UDP | Переходить між Wi-Fi і мобільним зв'язком та відлунює ваше введення локально, коли стрибає затримка. |
| ET (експериментальний) | etserver, типово порт 2022 | Так, через TCP | Для мереж, які повністю блокують UDP. Типово вимкнений; спершу увімкніть його в налаштуваннях. |
Mosh передбачає те, що ви друкуєте, тож екран відгукується ще до відповіді сервера. У розділі «Налаштування» → «Термінал» → «Режим передбачення за замовчуванням» є «Адаптивний», який вмикає передбачення лише на повільному каналі, а також «Завжди» і «Ніколи». «Адаптивний» стоїть за замовчуванням і підходить майже всім.
ET досі проходить випробування й вимкнений, доки ви не увімкнете транспорт ET (Eternal Terminal) у налаштуваннях. Після цього він з'являється як третій метод з'єднання в редакторі хоста. Одне, що варто врахувати: як і UDP у Mosh, з'єднання даних ET іде напряму з пристрою до порту etserver і не пересилається через проміжний хост.
iOS присипляє застосунки невдовзі після того, як вони зникають з екрана, тож жоден мобільний термінал не може тримати з'єднання TCP відкритим вічно. SharkTTY розв'язує це у два шари.
Найнадійніша відповідь на будь-якому транспорті — мультиплексор на сервері. Додайте скрипт підключення на кшталт tmux new -A -s mobile, і кожне перепідключення знову приєднає ту саму сесію замість того, щоб запускати нову оболонку. Про скрипти — далі.
Ще одна дрібниця, яка заощаджує чимало чекання: увімкніть системні сповіщення про сигнал термінала в налаштуваннях. Коли термінал подає сигнал, а ця сесія не та, на яку ви дивитеся, iOS показує сповіщення. Додайте printf '\a' у кінець довгої команди — і телефон скаже вам, коли вона завершиться.
Скрипт у SharkTTY — це блок тексту оболонки, який виконується в терміналі одразу після відкриття з'єднання. Налаштування → «Скрипти», торкніться +, і почніть або з порожнього скрипта, або з пункту «Створити з шаблону».
Список шаблонів згруповано за тим, заради чого люди насправді перепідключаються:
Укажіть платформу хоста — і список звузиться до шаблонів, які пасують саме цій машині, тож вам не запропонують apt на машині з Alpine. Усе, що згенерував шаблон, можна відредагувати, а дією «Зберегти як шаблон» — залишити власну версію на наступний раз.
Прив'яжіть скрипт до хоста в редакторі хоста — і він виконуватиметься при кожному з'єднанні. Або лишіть хост чистим і вибирайте під час підключення: у списку хостів «Підключитися зі скриптом» і «Підключитися напряму» — це різні дії, а подвійне торкання скрипта підключає саме з ним.
Над системною клавіатурою розташована допоміжна панель із клавішами, які потрібні терміналу, а в iOS їх немає: Esc, Ctrl, Tab і стрілки, а також кнопки для надсилання файлу, показу чи приховування клавіатури й вмикання вказівного пристрою.
У розділі «Налаштування» → «Клавіатура» → «Панель введення» ви перемикаєтеся між системною клавіатурою та плавучою — власною екранною клавіатурою SharkTTY. Плавуча панель — це повноцінна клавіатура, а не вузька смужка: символи, Tab, Return, модифікатори ⌃⌥⌘, клавіша fn і ряд F, розкладені як на справжній клавіатурі, з Г-подібним Return на два ряди. Пересувайте її куди завгодно, змінюйте розмір і повзунком непрозорості в її налаштуваннях притлумлюйте її над терміналом — аж до повністю непрозорої, якщо ви волієте нічого крізь неї не бачити.
Пункт «Розкладка» в тих самих налаштуваннях охоплює американську англійську, британську англійську, японську (JIS), французьку (AZERTY), німецьку (QWERTZ) та іспанську. Смужка підказок над клавішами пропонує ймовірні слова й поширені команди під час набору. Кнопка мікрофона у верхній панелі має дві поведінки: торкніться, щоб перейти до панелі голосового введення, або утримуйте, щоб говорити просто в смужку підказок.
Передавання подій миші вирішує, кому дістається ваш трекпад. Увімкнено — кліки й перетягування з під'єднаного трекпада чи миші йдуть до програм, які їх розуміють: vim, tmux, htop, less. Вимкнено — вказівник натомість виділяє текст. Різниця помітна лише тоді, коли програма справді попросила підтримку миші. На iPad зовнішні клавіатури й трекпади працюють усюди.
Утримуйте мікрофон і говоріть. Розпізнавання виконується на пристрої: безкоштовно, офлайн і миттєво, нічого нікуди не надсилається. Почуте потрапляє на панель голосового введення як редагований текст, а кнопка «Вставити» набирає його в терміналі.
Записи зберігаються фрагментами, тож можна підрізати один із них і розпізнати заново саме цю частину, а не повторювати все речення. Історія зберігає попередні записи для прослуховування й повторного проходу. На iPad панель голосового введення плаває й масштабується так само, як прозора клавіатура.
AI необов'язковий і відокремлений від розпізнавання. Додайте постачальника в налаштуваннях зі своїм ключем — підтримуються формати API OpenAI, Claude, Gemini, Kimi і GLM — та вкажіть модель для діалогу, а якщо у постачальника вона є, то й модель транскрибування. Claude працює лише в режимі діалогу й не має аудіо-API, тож записи там повертаються до розпізнавання на пристрої. Ключі постачальників лишаються в Keychain цього пристрою й ніколи не синхронізуються.
З під'єднаним постачальником режими підказок переписують сказане в чистий текст або в готову до запуску команду, а параметр «Додати контекст термінала» дає моделі побачити те, що на екрані, перш ніж відповісти. Панель діалогу тримає розмову поруч із сесією, тож запитати можна, не полишаючи її.
Якщо ви волієте не заводити власний ключ, після входу в обліковий запис SharkTTY доступні офіційні хмарні моделі. За них платять балами, які купують через вбудовану покупку й спільно використовують на всіх ваших пристроях. Розпізнавання на пристрої в будь-якому разі лишається безкоштовним.
Є два способи покласти файл на сервер, і вони пасують різним моментам.
Вкладка «Файли» в налаштуваннях під'єднує як диски те сховище, до якого ви маєте доступ із пристрою: iCloud Drive, спільну теку, локальну теку застосунку або сервер WebDAV за URL. Під'єднаний диск можна переглядати в тому самому файловому менеджері — саме так файл потрапляє з NAS на сервер без ноутбука посередині.
З'єднання відкриваються як вкладки, які можна перейменовувати. «Розкласти всі з'єднання» показує їх разом; «Розділити ліворуч/праворуч» і «Розділити вгорі/внизу» ставлять двоє поруч; «Сфокусувати це з'єднання» повертає одне на весь екран. На iPad це різниця між тим, щоб дивитися на розгортання, і тим, щоб дивитися журнал, поки розгортання йде.
Віддалені робочі столи живуть у тому самому робочому просторі, що й термінали, тож сесія Mac і три оболонки можуть ділити одну сітку.
Укажіть «Проміжний хост (ProxyJump)» у редакторі хоста, щоб спершу під'єднатися до бастіона й дістатися справжнього хоста через нього. Проміжний хост автентифікується власним збереженим ключем або паролем, без інтерактивних запитів; бастіон, який вимагає клавіатурно-інтерактивного входу, поки не підтримується.
Через проміжний хост іде лише з'єднання SSH. UDP у Mosh і з'єднання даних ET ідуть напряму з пристрою до цілі, і це варто перевірити, перш ніж покладатися на будь-який із них ззовні мережі.
Друга половина SharkTTY — це повноцінний віддалений робочий стіл для Mac. Йому потрібен один безкоштовний застосунок-компаньйон на Mac — SharkTTY Desk — і жодного проброшування портів, VPN чи налаштування маршрутизатора.
SharkTTY Desk безкоштовний і працює на macOS 14 Sonoma або новішій на Mac з Apple Silicon (M1 або новіший). Завантажте образ диска зі сторінки застосунку для Mac, перетягніть SharkTTY Desk у теку «Програми» й відкрийте його. Значка в Dock він не має; він сидить у рядку меню, а вікно відкривається звідти.
Під час першого запуску потрібні два дозволи, і панель застосунку веде просто до потрібного розділу «Системні параметри» → «Конфіденційність і безпека»:
Перед початком перевірте версії. SharkTTY Desk 0.9.0 потребує SharkTTY 1.6 або новішого на iPhone чи iPad, а двосторонній звук — 1.7 або новішого. Якщо оновити застосунок поки не вдається, старіша збірка SharkTTY Desk 0.5.0 усе ще працює із застосунками до версії 1.6.
У SharkTTY на iPhone чи iPad торкніться + й оберіть «Додати віддалений робочий стіл». Заповнити це можна трьома способами:
Дайте робочому столу назву, яку впізнаєте, потім натисніть «Зберегти й підключитися». Якщо Mac налаштовано питати перед тим, як когось впустити, застосунок чекатиме, поки людина біля Mac натисне «Дозволити».
Хтось також може поділитися з вами Mac за посиланням. Спільні робочі столи з'являються в розділі «Спільні зі мною» після входу. Доступ за посиланням може бути лише для перегляду, може мати термін дії, може бути відкликаний будь-коли, може обмежувати кількість одночасних підключень і може бути дозволений лише певним обліковим записам.
Mac з кількома моніторами надсилає їх усі. Пункт «Розташування екранів» задає розкладку — поруч, стосом, сітка 2×2 або «картинка в картинці» — і дисплеї можна переставити так, щоб вони відповідали розташуванню на вашому столі. Кожен дисплей транслюється на вимогу, і саме це робить Mac із трьома моніторами придатним для телефона.
Торкніться екрана, щоб узяти над ним керування; при перемиканні дисплеїв введення з клавіатури й вказівника переспрямовується на новий. «Фокус» збільшує один дисплей, коли потрібні деталі. У режимі коригування картинку можна перетягувати й масштабувати щипком.
Прямий дотик — найшвидший спосіб почати: один палець веде вказівник без кліку, а другий палець клікає там, де він стоїть. Торкання двома пальцями — це правий клік.
Для точної роботи є віртуальна миша з лівою, середньою та правою кнопками: натисніть і утримуйте, щоб зафіксувати перетягування, а для прокручування є жест колеса. Кнопки можна зібрати в одну панель уздовж нижнього краю екрана, яка ковзає ліворуч або праворуч туди, де лежить ваша рука, і піднімається над екранною клавіатурою, коли та відкрита.
Лупа показує ділянку під кінчиком пальця в рідній роздільності — саме так із телефона влучають у прапорець у вікні параметрів. Коли кнопки миші пришвартовані, вона стоїть просто над курсором і не відхиляється до краю екрана. ⌘, ⌥ і ⌃ поводяться як одноразові модифікатори: торкніться одного, потім торкніться клавіші, до якої він застосовується.
Одна кнопка клавіатури з випадним меню режимів перемикає між плавучою клавіатурою SharkTTY і системною клавіатурою з панеллю комбінацій. Плавуча панель має модифікатори й F-клавіші, яких очікує macOS і яких не пропонує iOS.
Меню швидких дій надсилає комбінації, які незручно набирати: пошук Spotlight, Mission Control, вікна програми та перемикання програм; розкладання вікна ліворуч і праворуч, на весь екран, по центру, згортання та приховування програми; закриття вікна, вихід із програми та примусове завершення; знімки ділянки та всього екрана; блокування екрана. Буфер обміну синхронізується в обидва боки, тож можна скопіювати на Mac і вставити на телефоні.
Відео кодується апаратно в H.264 і захоплюється через ScreenCaptureKit, а рівень обирає клієнт: xHD передає рідні пікселі Mac, HD і «Стандарт» міняють чіткість на пропускну здатність, а «Плавно» ставить частоту кадрів понад усе.
Лишіть увімкненим автозниження за слабкого зв'язку — і сесія сама зменшить рівень, коли мережа просяде, а потім триматиметься на ньому замість того, щоб смикатися. В одній мережі Wi-Fi з Mac зазвичай нормально працює xHD.
Віддалений звук приносить системний звук Mac на пристрій, тож відео чи дзвінок на Mac буде чути у вас у руці. Вхід мікрофона працює у зворотний бік і перетворює iPhone або iPad на мікрофон Mac — це покриває дзвінки, записи й диктування, зроблені на Mac, поки вас біля нього немає.
Обидва напрямки потребують SharkTTY 1.7 або новішого на пристрої. Сам звук передається в Opus.
Віртуальний дисплей, поки що в беті, створює додатковий безмоніторний екран під розмір вашого iPad. Це відповідь для Mac mini без монітора й для другого робочого простору, який ви носите із собою.
Desk уміє пробудити сплячий Mac через мережу й тримати його активним, поки ви під'єднані. За вашим дозволом він також може показати вікно входу macOS, щоб ви ввели пароль і віддалено розблокували машину після перезавантаження.
Обидва боки набирають назовні, тож на маршрутизаторі ніколи не треба відкривати порт. Різниться лише шлях, на якому вони зустрічаються.
Сесії наскрізно зашифровані, а ретранслятор завжди пересилає лише зашифрований текст. У локальній мережі кілька iPhone та iPad можуть одночасно переглядати той самий Mac і керувати ним; Mac може вимагати схвалення кожного нового глядача й відключити будь-кого одним дотиком.
Якщо ви волієте не торкатися чужих серверів, ретранслятор має відкритий код. Запустіть desk-relay на будь-якій публічній машині: він слухає QUIC на адресі, яку ви передаєте в --bind, і обслуговує резервний WebSocket на --wss-bind, а створення посилань захищене спільним секретом, який обираєте ви. Укажіть SharkTTY Desk цю адресу, відскануйте показане посилання ретранслятора — і ви єдина сторона, через яку проходить трафік. Обліковий запис SharkTTY тут ні до чого.
Або mosh не встановлено на сервері, або він не лежить у PATH, який отримує неінтерактивний вхід через SSH. Установіть mosh або вкажіть для цього хоста абсолютний шлях до mosh-server у розділі «Налаштування» → «Хости» — /usr/bin/mosh-server на більшості машин з Linux, /opt/homebrew/bin/mosh-server на Mac з Apple Silicon.
На віддаленій машині немає etterminal або він не лежить у PATH для неінтерактивної сесії SSH. Установіть там Eternal Terminal (apt install et, brew install et), переконайтеся, що etserver запущено, а його порт — 2022, якщо ви його не змінювали — не заблоковано брандмауером, і спробуйте ще раз. SSH і Mosh тим часом працюють як завжди.
Це перевірка робить свою справу. Законна причина — перезібраний сервер або змінений ключ; незаконна — хтось посередині. З'ясуйте, що саме сталося, перш ніж тиснути «Довіряти новому ключу й перепідключитися», а якщо ви перезбирали машину самі — очистіть збережений ключ хоста в редакторі хоста й свідомо підтвердьте новий відбиток.
Діють два обмеження. Файли обмежені 64 MB, і хосту потрібні облікові дані, які застосунок може використати повторно — сервер, до якого входять лише за одноразовим кодом, для надсилання не підійде. Для чогось більшого чи вибагливішого скористайтеся файловим менеджером SFTP або під'єднаним диском.
Перевірте, чи SharkTTY Desk справді запущено, а не просто встановлено. Якщо Mac може спати, увімкніть у Desk пробудження через мережу. Між мережами з'єднання може зайняти кілька секунд, поки застосунок пробує прямий шлях, перш ніж перейти на ретранслятор.
Чорна картинка майже завжди означає, що не надано «Запис екрана»; картинка, яка не реагує, — що не надано «Універсальний доступ» або вимкнено «Дозволити керування». І те, і те живе в розділі «Системні параметри» → «Конфіденційність і безпека» на Mac, і Desk веде просто туди.
Перевірте версії: SharkTTY Desk 0.9.0 потребує SharkTTY 1.6 або новішого на телефоні чи планшеті. Оновіть застосунок в App Store або встановіть старішу збірку SharkTTY Desk 0.5.0, яка працює з попередніми версіями застосунку.
Ні за що з потрібного. Застосунок, компаньйон для Mac, розпізнавання голосу на пристрої та всі описані вище можливості безкоштовні, а щоб під'єднатися до власних серверів, обліковий запис не потрібен. Офіційні хмарні моделі AI оплачуються балами; з власним ключем постачальника вони не коштують нічого. Чайові — справа добровільна, разові або щомісячні, і не відкривають жодних функцій: щомісячні поновлюються, доки ви не скасуєте їх у налаштуваннях свого облікового запису Apple.
SharkTTY безкоштовний в App Store, а SharkTTY Desk для Mac — безкоштовне завантаження.
Більше подробиць про бік Mac — на сторінці SharkTTY Desk а найшвидше на запитання відповідають на дошці відгуків.