Termiyo

Документация

Termiyo от начала до конца

Короткие страницы, в том порядке, в каком они вам понадобятся.

Начало работы

Установите Termiyo

Возьмите на странице загрузки сборку для своего компьютера: Universal .dmg на Mac, установщик на Windows, пакет вашего дистрибутива на Linux. Там же сказано, как проверить файл и как установить его в каждой системе.

Создайте хранилище

При первом запуске Termiyo просит мастер-пароль. Это единственное, что защищает всё, что хранит приложение, он никуда не отправляется, и восстановить его нельзя — возьмите парольную фразу из нескольких не связанных между собой слов.

Добавьте учётные данные

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

Добавьте сервер

Укажите адрес и выберите учётные данные. Двойной щелчок — и подключение. При первом подключении показывается отпечаток ключа сервера; приняв его, вы закрепляете ключ для всех последующих.

Промежуточные узлы

Как дойти до закрытого сервера

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

Цепочки

У промежуточного узла может быть свой промежуточный узел. Termiyo разворачивает весь путь до набора, отказывается от цепочки с петлёй и называет узел, на котором не получилось.

Проброс портов

Локальный

Слушаем на вашей машине, доставляем на стороне сервера. Обычный случай — добраться до базы, которая слушает только localhost на сервере.

Обратный

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

Динамический (SOCKS5)

Termiyo поднимает локальный SOCKS5-прокси и отправляет каждое соединение через сессию, а адрес назначения разрешается на дальнем конце. Направьте туда браузер — и вы просматриваете сеть с сервера.

Совместный терминал

Создать ссылку

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

Разрешить печатать

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

Что куда идёт

Поток терминала идёт напрямую между двумя машинами. Наш сервис знакомит вас двоих и дальше ничего не видит. Ссылка перестаёт работать через четыре часа или когда вы прекратите доступ — что раньше.

Синхронизация

Вход

Settings, Sync. Используйте пароль, который уже открывает ваше хранилище — Termiyo выводит из него два отдельных ключа: один остаётся здесь, другой сервер может проверить, так и не узнав пароль.

Вторая машина

Установите Termiyo, создайте хранилище с тем же паролем и войдите. Ваши серверы, ключи и сниппеты придут с первой синхронизацией. Расшифровка не происходит нигде, кроме ваших собственных машин.

Выход

Удаляет токен, а не данные. То, что на машине, на ней и остаётся — по-прежнему зашифрованное под паролем вашего хранилища.

Спросить команду

Настройка

Settings, AI и ключ Anthropic API. Ключ лежит в вашем хранилище, зашифрованный как любой другой секрет.

Вопрос

Опишите, что нужно. Подсказка ложится в вашу командную строку, чтобы вы её прочитали; Termiyo никогда не выполняет её за вас. Всё, что удаляет, перезаписывает или останавливает службу, помечается.

Что отправляется

Ваш вопрос и операционная система, если её назвал баннер входа. Последние команды отправляются только если вы это включите. Имена хостов, имена пользователей, пароли и ключи не отправляются никогда.

Telnet и последовательный порт

Консоли на последовательном порту

Выберите Serial при добавлении сервера, и Termiyo перечислит порты, которые видит. Большинство консольных портов работают на 8-N-1 при 9600; неверная скорость не выдаёт ошибку, а выдаёт мусор — так что если вывод выглядит странно, проверьте сначала её.

Послать break

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

Telnet

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

Импорт из другого SSH-клиента

Импорт из клиента, которым вы уже пользуетесь

Поискать на этом компьютере

Меню импорта — это кнопка с облаком над списком серверов, и первый её пункт — «Поискать на этом компьютере». Termiyo сам заходит туда, где уже стоящие у вас инструменты держат свои серверы: ssh_config, known_hosts, PuTTY, FileZilla, WinSCP, MobaXterm, IDE от JetBrains, Remmina, Tabby, SecureCRT, Cyberduck и те профили iTerm2, которые на самом деле являются командами ssh, — и показывает найденное с количеством, вместо того чтобы просить вас искать файл.

Что переносится

Названия, адреса, порты, имена пользователей, промежуточные узлы и проброс портов. Сохранённые пароли тоже — из FileZilla, WinSCP, JuiceSSH и Remmina, в хранилище, где они зашифрованы. JetBrains и Cyberduck держат свои в keychain системы, MobaXterm — в DPAPI, SecureCRT — за собственной парольной фразой: такие серверы всё равно импортируются и спрашивают пароль один раз при первом подключении. Всё, что разобрать не удалось, перечисляется с причиной, а не выбрасывается молча.

Termius, JuiceSSH и PuTTY требуют файла

Termius шифрует то, что хранит на машине, по каждому полю — читать там нечего, а собственный экспорт он убрал: файл должен появиться из экспортера сообщества, который вы запускаете сами; Termiyo читает его JSON и CSV вместе с ключами. JuiceSSH — приложение для телефона, скопируйте его резервную копию сюда. PuTTY в Windows держит сессии в реестре, так что сначала выгрузите их через regedit; в macOS и Linux ~/.putty/sessions читается как есть. Положите любой из этих файлов в «Загрузки», и Termiyo сам предложит его по имени, когда вы вернётесь.

Ничего не записывается, пока вы не прочтёте

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

SSH-сертификаты

Вставьте сертификат

Откройте Настройки, SSH-ключи, выберите ключ и вставьте в поле «Сертификат» строку -cert.pub, подписанную вашим центром сертификации. Termiyo покажет, кого он впускает, до какого времени и какую команду задаёт принудительно, а список ключей — когда истекает срок. Сертификат хоста отклоняется ещё до сохранения, как и подписанный для другого ключа, когда понятно, какой это ключ: всегда для ключа, который хранит Termiyo, и для ключа в агенте — после того как вы укажете его открытую часть.

Сертификаты в агенте

Сертификат, который хранит ваш SSH-агент, предлагается сам; вставлять ничего не нужно. Перед подключением Termiyo спрашивает агента, что у него есть.

Импорт переносит их

Импорт ssh_config переносит CertificateFile каждого ключа и лежащий рядом -cert.pub; так же работает выбор файла ключа. Сертификат, подписанный для другого ключа, сертификат хоста или истёкший не привязывается, и предпросмотр объясняет почему. К уже имеющемуся ключу сертификат добавляется, только если вы отметите соответствующий флажок.

Mosh тоже

Хост Mosh входит по вашему сертификату так же, как хост SSH. Если сертификат принудительно задаёт команду, хост выполняет её вместо mosh-server, и Mosh не может запуститься; Termiyo называет это вероятной причиной. Сертификаты ключей безопасности во входе Mosh не используются, потому что он не может ждать касания, — для них используйте SSH.

Импорт из AWS

Что нужно

Ключ доступа с ec2:DescribeInstances и больше ничего. Учётные данные используются для этого одного вызова и не сохраняются.

Что получится

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

Повторный запуск

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

Сниппеты

Сохранить команду

Сниппеты — это команды, которые вы держите под рукой, сгруппированные в папки. Запущенный сниппет печатается в терминал, который перед вами.

Значения в сниппете

Пишите ${name} там, где нужно значение, и выберите в редакторе, как заполняется каждое: «Спрашивать каждый раз» (с ответом по умолчанию или списком разрешённых ответов), «Подставлять с хоста» (его адрес, порт или имя для входа) или «Оставить оболочке» — для значения, которое у оболочки уже есть, например ${PATH}. Сниппет никогда не запускается с недостающим значением: кнопка «Выполнить сниппет» остаётся неактивной, пока на каждое нет ответа. Настольное приложение в следующий раз предложит ваши последние ответы; секрет никогда не сохраняется.