Перейти к содержимому

Прокси

Свой сервер как выход

Машина, за которую вы уже платите, становится выходом профиля, и покупать прокси для этого не нужно. Рядом с браузером работает обычный ssh, пароль не попадает в командную строку, а оборванный туннель не превращается в прямое соединение.
SOCKS5 на петле
Что получает браузер
Никогда
Пароль в командной строке
20 секунд
Ожидание подъёма туннеля
3
Попыток на том же порту

Что работает рядом с браузером

Браузер не знает о SSH ничего и знать не должен. Рядом с профилем работает обычный ssh с динамической переадресацией, и он открывает настоящий вход SOCKS5 на петле.

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

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

Что вы вписываете в библиотеку
ssh://user@srv.example:22
Что получает движок
socks5 на 127.0.0.1, порт берётся при запуске

Свободный порт на петле берётся при открытии профиля и держится до его закрытия. Повторный запуск уже открытого профиля переиспользует поднятый туннель, а не вырывает порт из-под живого окна.

Два способа войти

Файл ключа работает на любой системе. Вы указываете путь, а читает ключ сам ssh: закрытый ключ ARMANOS не открывает.

Пароль от сервера работает на macOS и Linux, и там же работает ключ со своим собственным паролем.

Способ входаmacOS и LinuxWindows
Ключ без пароляРаботаетРаботает
Ключ со своим паролемРаботаетОтказ с причиной
Пароль от сервераРаботаетОтказ с причиной

Почему в Windows нужен ключ, а не пароль

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

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

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

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

Путь к файлу ключа остаётся на этой машине

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

Личная настройка ssh не вмешивается

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

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

  • Ваша настройка

    Не читается вовсе, и записанное в ней профиль никуда не уведёт.

  • Ваши известные узлы

    Не дописываются. У туннеля свой список серверов.

  • Ваши прочие ключи

    Не подставляются. С файлом ключа пробуется только он, без него только пароль.

Сменившийся ключ сервера останавливает запуск

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

Когда туннель обрывается

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

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

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

  1. 1

    Связь проверяется

    Каждые 15 секунд, поэтому оборванный туннель виден меньше чем за минуту.

  2. 2

    Попытки повторяются

    Три раза на том же порту, с растущей паузой между ними.

  3. 3

    Вам говорят

    Одна строка сообщает о возвращённом туннеле, другая о неудаче.

Проверка до запуска

Кнопка проверки поднимает настоящий туннель, меряет через него и снимает его сразу, как приходит ответ. Поэтому прошедшая проверка означает, что и запуск дойдёт до этого места.

Заодно читается страна, из которой выходит ваш сервер: по ней профилю задаются часы и список языков.

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

Эту запись не проверить из кабинета на сайте

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

Чего это не делает

  • Сервера здесь не дают. ARMANOS машины не продаёт, не сдаёт и не настраивает: берётся та, до которой вы уже достаёте.
  • Это не жилой адрес. Трафик выходит из сети хостинга, и площадка читает его ровно так.
  • На Windows пароль не принимается, и ключ со своим паролем там тоже отклоняется. Работает простой файл ключа.
  • За первое подключение здесь никто не ручается. Ключ сервера в первый раз принимается как есть и запоминается, и запуск останавливает только его последующая смена.

Как проверить

Каждое утверждение выше лежит в одном месте кода, и у каждого есть стенд.

Туннель поднимается до настоящего сервера, трафик проходит, а обрыв лечится на том же порту
apps/desktop/src/lib/sshTunnel.js · apps/desktop/test/выход-по-ssh.js
Пароль не попадает в доводы ssh, а вход по зашифрованному ключу проходит
apps/desktop/src/lib/sshTunnel.js · apps/desktop/test/выход-по-ssh.js
Ответчик и канал живут только на время подъёма туннеля
apps/desktop/src/lib/secureFile.js · apps/desktop/test/secrets-on-disk.js
Проверка обычного прокси идёт той же дорогой, что и запуск; туннель SSH поднимается отдельно
apps/desktop/src/main/main.js · apps/desktop/test/proxy-check-uses-bridge.js

Вопросы

Уезжает ли файл ключа в аккаунт?
Нет. Уехать мог бы только путь, а путь с этой машины на другой не значит ничего. Ни сверка, ни вход в аккаунт, ни общая запись его не трогают: каждый компьютер указывает свой ключ.
Может ли другая программа этой машины пойти через туннель?
Пока профиль открыт, да: вход на петле пропуска не спрашивает. Он привязан к петле, поэтому снаружи машины до него не дотянуться, и умирает он вместе с профилем.
Что будет, если закрыть программу при открытом профиле?
Туннели снимаются вместе с ней, и при закрытии окна, и при выходе. На macOS и Linux переживший падение туннель находят по нашему же имени файла и снимают при следующем запуске.
Это то же самое, что купленный SOCKS5?
Вид тот же, машина другая. Дальний конец ваш и не делится с чужими людьми, но адрес у него хостинговый, а не домашний.

Сделайте выходом сервер, который у вас уже есть

Поставьте ARMANOS, добавьте в библиотеку одну запись SSH и откройте за ней профиль.