Прокси
Свой сервер как выход
- SOCKS5 на петле
- Что получает браузер
- Никогда
- Пароль в командной строке
- 20 секунд
- Ожидание подъёма туннеля
- 3
- Попыток на том же порту
Что работает рядом с браузером
Браузер не знает о SSH ничего и знать не должен. Рядом с профилем работает обычный ssh с динамической переадресацией, и он открывает настоящий вход SOCKS5 на петле.
Для движка это обычный местный адрес, поэтому ни одна дорога запуска не становится особенной и ничто не понижается у вас за спиной.
Сама запись лежит в той же библиотеке, что и остальные адреса: её вписывают одной строкой и вставляют пачкой вместе с прочими.
- Что вы вписываете в библиотеку
- ssh://user@srv.example:22
- Что получает движок
- socks5 на 127.0.0.1, порт берётся при запуске
Свободный порт на петле берётся при открытии профиля и держится до его закрытия. Повторный запуск уже открытого профиля переиспользует поднятый туннель, а не вырывает порт из-под живого окна.
Два способа войти
Файл ключа работает на любой системе. Вы указываете путь, а читает ключ сам ssh: закрытый ключ ARMANOS не открывает.
Пароль от сервера работает на macOS и Linux, и там же работает ключ со своим собственным паролем.
| Способ входа | macOS и Linux | Windows |
|---|---|---|
| Ключ без пароля | Работает | Работает |
| Ключ со своим паролем | Работает | Отказ с причиной |
| Пароль от сервера | Работает | Отказ с причиной |
Почему в Windows нужен ключ, а не пароль
Куда уходит пароль от сервера
Командную строку чужого процесса читает любая программа под тем же человеком, поэтому туда не попадает ничего тайного. Пароль ssh спрашивает своим ходом, а ответ приходит по безымянному каналу в папке, открытой только вам.
Содержимого этого канала на диске не бывает вовсе, и он стирается сразу, как только туннель встал, вместе с маленьким ответчиком, который его прочитал.
Путь к файлу ключа остаётся на этой машине
Личная настройка ssh не вмешивается
Туннель поднимается с выключенной личной настройкой. Записанный в ней промежуточный узел или подмена имени увели бы профиль совсем не туда, куда вы его отправили, и молча.
Известные серверы помнятся в собственном файле программы, потому что файл, которым вы входите на работу, править не наше дело.
Ваша настройка
Не читается вовсе, и записанное в ней профиль никуда не уведёт.
Ваши известные узлы
Не дописываются. У туннеля свой список серверов.
Ваши прочие ключи
Не подставляются. С файлом ключа пробуется только он, без него только пароль.
Сменившийся ключ сервера останавливает запуск
Когда туннель обрывается
Оборванный туннель замечают, а не оставляют выглядеть живым. Вход на петле принадлежит туннелю и умирает вместе с ним, поэтому каждый запрос из того окна получает отказ.
Дальше туннель поднимается заново на том же порту, потому что уже запущенное окно нового порта не узнает.
Бесконечные попытки жгли бы предел подключений у вашего сервера и прятали беду, поэтому третья неудача называется вслух.
- 1
Связь проверяется
Каждые 15 секунд, поэтому оборванный туннель виден меньше чем за минуту.
- 2
Попытки повторяются
Три раза на том же порту, с растущей паузой между ними.
- 3
Вам говорят
Одна строка сообщает о возвращённом туннеле, другая о неудаче.
Проверка до запуска
Кнопка проверки поднимает настоящий туннель, меряет через него и снимает его сразу, как приходит ответ. Поэтому прошедшая проверка означает, что и запуск дойдёт до этого места.
Заодно читается страна, из которой выходит ваш сервер: по ней профилю задаются часы и список языков.
Туннель, который не поднялся, называет свою причину, от отвергнутого сервером входа до сменившегося ключа, а не винит адрес.
Эту запись не проверить из кабинета на сайте
Чего это не делает
- Сервера здесь не дают. 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 и откройте за ней профиль.