MySSH

Безопасность и приватность

Как MySSH защищает ваши данные

Без недомолвок: что и как шифруется, что уходит в облако и от чего всё это не защищает.

  • Мы не можем прочитать ваше хранилище: оно шифруется на вашем устройстве
  • Мастер-пароль не покидает ваше устройство
  • SSH идёт прямо на ваши серверы, а не через нас
  • Ни аналитики, ни телеметрии, ни рекламы

Общая картина

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

Ваш компьютерключи живут здесь
Облако MySSHвидит только шифртекст
Ваши серверыбез посредников

Нет аккаунта? Тогда с вашего компьютера вообще ничего не уходит. Приложение полностью работает и без него.

Мастер-пароль

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

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

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

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

Что уходит в облако

  • Ничего, пока вы не вошли в аккаунт.
  • После входа: хосты вместе с сохранёнными паролями, группы, учётные записи, сниппеты, настройки и ключи серверов ваших сохранённых хостов.
  • SSH-ключи только с вашего согласия. Синхронизация включается для каждого ключа отдельно, и по умолчанию она выключена.
  • Каждая запись шифруется на вашем устройстве (XChaCha20-Poly1305) до отправки.

Что видит наш сервер

Чтобы синхронизировать, серверу нужно кое-что знать. Вот весь список.

Видит

  • Ваш emailЭто ваш логин, без него серверу не обойтись.
  • Ваши устройстваНазвание каждого, например «MacBook Pro», его система и версия приложения, время последнего входа. Так вы узнаёте устройство в списке и можете отозвать его доступ.
  • Контуры ваших записейСколько их, какого каждая размера, когда и с какого устройства изменилась. Иначе сервер не знал бы, что отправить на другие ваши устройства.
  • Ваш IP-адресКак и любой сайт, который вы открываете.

Не видит

  • Названия и адреса хостовНи prod-web-1, ни 10.0.4.12, ни порты, группы и теги.
  • Логины и паролиНи сохранённые в хостах, ни в общих учётных записях.
  • SSH-ключиТе, что вы решили синхронизировать, приходят зашифрованными, вместе с парольными фразами.
  • Сниппеты и настройкиНи названий, ни строчки текста.
  • Что за запись перед нимХост и сниппет снаружи выглядят одинаково: тип лежит внутри зашифрованной части.
  • Ваш мастер-парольОн не отправляется никогда и ни в каком виде.

Одна запись с двух сторон

Вот хост, каким он существует на вашем компьютере, и тот же самый хост, каким он лежит на нашем сервере.

На вашем компьютере
kind
host
label
prod-web-1
address
10.0.4.12
port
22
username
deploy
password
••••••••••••
tags
prod, web
На нашем сервере
id
7c9e6679-7425-40de-944b-e07fc1f90ae7
rev
42
updated_at
1791884472
device_id
3f2b8a10-5d1c-4e7a-9b02-64c1d0aa71e5
blob
b71e 9c04 a3f2 58d0 11c7 6e3a f09b 2d44 87a1 c5e2 0f6d 93b8 4a17 e8c0 … 318 байт

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

Что остаётся на вашем устройстве

Хосты, сохранённые пароли, SSH-ключи, учётные записи и сниппеты лежат в одном файле, vault.bin, зашифрованном XChaCha20-Poly1305 случайным 256-битным ключом.

На устройстве его защищают ваша учётная запись и шифрование диска: FileVault на Mac, BitLocker на Windows. На Mac MySSH проверяет, включён ли FileVault, и предупреждает в настройках, если нет.

Кое-что не покидает устройство никогда, с аккаунтом или без:

  • История команд, зашифрованная ключом хранилища
  • SSH-ключи, для которых вы не включили синхронизацию
  • Ключи серверов, к которым вы подключались, не сохраняя их как хосты. В списке известных хостов только открытые ключи, на устройстве он не шифруется

Сеть и обновления

SSH и SFTP идут напрямую с вашего компьютера на ваш сервер, через облако ничего не проходит. Кроме ваших серверов приложение обращается только к облаку MySSH (myssh.app) по HTTPS.

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

Если выпуск окажется неудачным, мы можем его отозвать, и приложение предложит вернуться на предыдущий. Это тоже подписанный нами выпуск, и он тоже ждёт вашего решения.

Если вы просите AI-подсказку, строка уходит по HTTPS в облако MySSH вместе с системой и shell сервера, папкой и несколькими последними строками экрана; пароли, токены и ключи вырезаются заранее, на вашем устройстве. Облако передаёт запрос в Google Gemini и не хранит текст, только сколько подсказок попросил каждый аккаунт. Пока вы не выбрали строку AI, ничего не отправляется, а строка, набранная с пробела в начале, не отправляется никогда.

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

Аналитики, телеметрии и рекламы нет.

Проверка серверов

При первом подключении приложение показывает отпечаток ключа сервера и ждёт вашего решения. Если ключ потом изменился, подключение останавливается: возможно, за ваш сервер выдаёт себя другой. Ключи, которым вы доверяете, можно посмотреть и забыть в разделе «Известные хосты».

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

Совместные сессии

Приглашения в терминал выключены, пока вы сами не включите их в настройках, и никому ничего не показывается, пока вы не отправите ссылку.

  • Содержимое шифруется ключом, который есть только в ссылке. Наш сервер прочитать его не может.
  • Когда возможно, участники соединяются друг с другом напрямую и тогда видят IP-адреса друг друга. Чтобы найти эти адреса, приложение обращается к STUN-серверу Cloudflare, который узнаёт IP, но не содержимое. Иначе сессия идёт через наш сервер, по-прежнему зашифрованной.
  • Печатает кто-то один: вы, пока не разрешите гостю. Клавиатуру можно забрать обратно в любой момент.
  • Сессия заканчивается, когда вы её остановили, закрыли вкладку или завершилось подключение.

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

Управляете всем вы

  • Ничего не выполняется без вас. Синхронизация и автоматическое переподключение не запускают команды на серверах. Стартовый сниппет выполняется, только когда вкладку открываете вы сами.
  • Ваши устройства на виду. Вы видите каждое устройство, вошедшее в аккаунт, и можете отозвать его доступ к облаку.
  • История с тактом. Команда, набранная с пробелом в начале, не запоминается, а ввод, который сервер не показывает, например пароли, не запоминается никогда. Историю можно очистить в любой момент.
  • Аккаунт можно удалить самому. В настройках приложения, с мастер-паролем: всё, что наш сервер хранит для него, стирается безвозвратно. То, что есть на ваших устройствах, остаётся.

От чего это не защищает

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

  • Любая программа, запущенная от вашего имени, и любой, кто сел за разблокированный компьютер, могут прочитать хранилище вместе с его ключом. Само приложение тоже покажет сохранённый пароль тому, кто за ним сидит.
  • Выключенный, потерянный или украденный компьютер защищает одно лишь шифрование диска. Держите FileVault или BitLocker включённым.
  • Короткий или уже где-то использованный мастер-пароль ослабляет облачную копию. Её шифрование надёжно ровно настолько, насколько надёжен этот пароль.
  • Отзыв устройства останавливает его синхронизацию. Он не стирает то, что на устройстве уже есть, и не убирает его SSH-ключи с ваших серверов.
  • Установщик для Windows пока не подписан сертификатом, поэтому Windows не может подтвердить, кто его сделал. Скачивайте его только с этого сайта.

Попробуйте MySSH. Это займёт минуту.

Скачайте, добавьте хост, подключитесь. Аккаунт не нужен.

Mac на Apple Silicon (M1 и новее) · Windows 10 и 11 · Аккаунт не обязателен