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

Прокси

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

Машина, за которую вы уже платите, становится выходом профиля, и покупать прокси для этого не нужно. Рядом с браузером работает обычный 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 не вмешивается

Ваша личная настройка 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/main/main.js · apps/desktop/test/proxy-check-uses-bridge.js

Вопросы

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

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

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