Skip to content
/ dssh Public

(tssh from trzsz)+(CA key with embed-encrypt)+(sshd from gliderlabs)+(access over NAT using jumphost ssh-j.com)+(ser2net with putty or direct connect to serial console or over browser)

License

Notifications You must be signed in to change notification settings

abakum/dssh

Repository files navigation

dssh

dssh:=(tssh from trzsz)+(CA key with embed-encrypt)+(sshd from gliderlabs)+(access over NAT using jumphost ssh-j.com)+(ser2net with putty or direct connect to serial console or over browser)

0. Мои благодарности

  1. Lonny Wong.
  2. Paul Scheduikat.
  3. Glider Labs.
  4. ValdikSS.
  5. 9elements.
  6. Patrick Rudolph.
  7. Simon Tatham.
  8. Corey Minyard.
  9. Vyacheslav Frolov.
  10. MikroTik.
  11. Cristian Maglie

1. Как использовать для доступа к локальной консоли:

  • y. отсутствует зачит локальная последовательная консоль на первом свободном порту USB. Или путь к последовательному порту на Linux как /dev/ttyUSB0. Или последовательный порт на Windows как COM1. Или суффикс порта от 0 до 9.
  • X. IP или dns адрес или ssh-алиас или dssh-алиас . как сокращение алиаса dssh или dssh-алиас : как сокращение алиаса ssh-j. Вместо алиаса : можно использовать алиас . в этом случае если на хосте dssh-клиента не запущен dssh-сервер то будет использован алиас : для доступа к dssh-серверу через посредника ssh-j.com.
  • x. отсутствует зачит 127.0.0.1 или локальный IP или локальный алиас: + как 0.0.0.0 или _ как последний локальный сетевой интерфейс.
  • host. X или x.
  • port. TCP порт.
  • port5000. суффикс порта 5000 от 0 до 9 значит порт от 5000 до 5009 или port.
  • noWin7withoutCygwin. кроме Windows 7 без Cygwin.
  • Win7withoutCygwin. для Windows 7 без Cygwin.
  • Win7withCygwin. для Windows 7 с Cygwin.
  1. Вместо PuTTY, plink 0.7 для доступа к локальной последовательной консоли на первом USB порту y со стартовым режимом 9600,8,N,1,N dssh -U9600 или короче с префиксом скорости dssh -U9 или без указания режима dssh -UU или короче dssh -z тогда берётся последний режим на порту. Можно задать любой стартовый режим на y а потом переключать! На Darwin 12.7.6 тоже работает. Для Linux нужно членство в группе dialout.
  2. Вместо PuTTY, plink для доступа к локальной последовательной консоли на порту COM1 для Windows dssh -HCOM1 или короче с суффиксом порта dssh -H1.
  3. Вместо PuTTY, plink, busybox microcom для доступа к локальной последовательной консоли на порту /dev/ttyUSB0 не для Windows dssh -H/dev/ttyUSB0 или dssh -HttyUSB0 или короче dssh -H0.
  4. Вместе с PuTTY для доступа к y dssh -u. На Linux и Darwin используется putty или plink если их нет то busybox microcom.
  5. Вместе с plink для доступа к y dssh -zu или короче dssh -u. Ключ -z вместе с ключами -u или -Z значит в том же окне.
  6. Вместе с telnet для доступа к y через telnet://127.0.0.1:5000 dssh -Z. Для Windows в новом окне.
  7. Вместе с telnet для доступа к y через telnet://127.0.0.1:5000 dssh -zZ.
  8. В окне веб браузера для доступа к y через http://127.0.0.1:8000 dssh -8 8000 или dssh -80 или короче dssh -s.
  9. Как в 1.8 но через http://192.168.1.1:8000 dssh -8 8000 0.0.0.0 или короче dssh -80 0.0.0.0 или ещё короче dssh -80 +, где 192.168.1.1 это первый сетевой интерфейс или 0.0.0.0.
  10. Как в 1.9 но через http://192.168.2.1:8009 dssh -8 8009 192.168.2.1 или dssh -89 192.168.2.1 или короче dssh -89 _, где 192.168.2.1 это последний сетевой интерфейс.
  11. Как в 1.9 но через telnet://192.168.1.1:5000 dssh -25000 0.0.0.0 или dssh -20 + или короче dssh -s +.
  12. Как в 1.10 но через telnet://192.168.2.1:5000 dssh -25000 192.168.2.1 или короче dssh -s _.
  13. Когда используется dssh -20 -88 это всё равно, что совместно dssh -20 и dssh -H: -88. Режим посредника.
  14. Команда dssh -2 port5000 x работает и как RFC2217 телнет-клиент 1.15 и как RFC2217 телнет-сервер типа ser2net только без команд для модема.
  15. Команда dssh -H host:[port5000] работает как RFC2217 телнет-клиент и может удалённо менять режимы работы последовательной консоли: baudRate - скорость в бодах, dataBits - количесто бит в символе, parity - чётность, stopBits - количество стоповых бит. Если dssh -HH то пробуем доступ через LAN dssh -H: иначе через локальный dssh-сервер dssh -H: . иначе через dssh-сервер dssh -H: :
  16. Чтоб поделиться локальной последовательной консолью через sshd-сервер X dssh -s20 X или короче dssh -s X. Для подключения к этой консоли dssh -H127.0.0.1:5000 X или dssh -H:5000 X или dssh -H: X или короче dssh -HH X или без управления и без перевода консоли в сырой (raw) режим ssh -W127.0.0.1:5000 X.
  17. Чтоб поделиться локальной последовательной консолью через dssh-сервер dssh -s20 . или короче dssh -s . . Для подключения к этой консоли dssh -HH или без управления dssh -W5000 . или без управления и без перевода консоли в сырой режим ssh -W127.0.0.1:5000 :.
  18. Чтоб поделиться в LAN локальной последовательной консолью без dssh-сервера и без sshd-сервера dssh -20 или короче dssh -s. Для подключения к этой консоли dssh -H: или короче dssh -HH или без управления dssh -W5000 или telnet 127.0.0.1 5000.
  19. Команда dssh -s host это то же что и dssh -80 host. Чтоб управляющие последовательности ANSI обрабатывать в веб-браузере.

2. Как использовать для доступа к удалённой консоли интерпретатора команд по ssh:

  • port2200. суффикс порта 2200 от 0 до 9 значит порт от 2200 до 2209 или port.
  1. При наличии на хосте Сети запускаем dssh-сервер dssh или dssh +. Сервер будет ждать на 127.0.0.1:2200 или соответствено на 0.0.0.0:2200.
  2. При наличии у клиента Сети подключаемся к dssh-серверу dssh . Это сработает и за NAT так как подключение к dssh-серверу идёт через посредника ssh-j.com 0.4.
  3. При отсутствии на хосте Сети запускаем dssh-сервер dssh + или dssh _ или dssh -d x[:port2200] и сообщаем клиенту x[:port2200].
  4. При отсутствии на клиенте Сети но при наличии локальной сети подключаемся к dssh-серверу dssh -j x[:port2200].
  5. Если клиент находится на хосте с dssh-сервером, подключаемся к нему без посредников dssh . или dssh -j : или dssh -j x[:port2200] или через посредника dssh : .
  6. Так же как в 1.4 и 1.5 но с параметром .. Например вместе с PuTTY dssh -u . или вместе c plink dssh -zu .. Должно выполняться условие 6.8.
  7. Вместе с ssh в отдельном окне dssh -Z . похоже на 1.6 или вместе с ssh в том же окне dssh -zZ . похоже на 1.7. Должно выполняться условие 6.8. C Cygwin на Windows 7 dssh -Z . значит dssh -zZ .
  8. Так же как в 1.8-1.12 но с параметром -Hcmd для Windows или -Hbash для Linux. Например dssh -Hcmd -20 . или короче dssh -0Hcmd или через браузер и Linux dssh -0Hbash -88.
  9. Вместо ssh X как dssh X и наоборот вместо dssh : dssh -Z : как ssh :

3. Как использовать для доступа к удалённой консоли:

  1. Как в 2.2-2.6 только добавив ключи -z -U -H -2 -8 из раздела 1. Например dssh -z . зто похоже на dssh . dssh -z или ssh . dssh -z но лучше dssh -0 чтоб отдать и использовать удалённую консоль dssh-сервера или dssh -0 X чтоб отдать и использовать удалённую консоль sshd-сервера X.
  2. Если на 192.168.2.1 запущен RFC2217 телнет-сервер c доступом к последовательной консоли через порт 5000 например dssh -25000 _ или короче dssh -s _ как в 1.12 или сервис ser2net или RouterOS с портом USB и адаптером USB2serial то с 192.168.2.2 можно подключиться dssh -W192.168.2.1:5000 в сыром режиме без управления режимом последовательной консоли или dssh -H192.168.2.1: в режиме RFC2217 c управлением режимом последовательной консоли.
  3. Если на 192.168.2.2 запущен dssh-сервер а на 192.168.2.1 запущен RFC2217 телнет-сервер c доступом к последовательной консоли через порт 5000 как в 3.2 то можно подключиться без управления режимом консоли dssh -W192.168.2.1:5000 . или с управлениемdssh -H192.168.2.1: .. Как в 3.2 только отовсюду.
  4. Если на 192.168.2.2 запущен sshd-сервер X а на 192.168.2.1 запущен RFC2217 телнет-сервер c доступом к последовательной консоли через порт 5000 как в 3.2 то присоединиться к консоли можно ssh -W192.168.2.1:5000 X или dssh -H192.168.2.1: X.
  5. Если на хосте запущен dssh-сервер и на нём же запущен RFC2217 телнет-сервер c доступом к последовательной консоли например dssh -20 или короче dssh -s то можно подключиться отовсюду dssh -W127.0.0.1:5000 . или dssh -W:5000 . или dssh -W5000 . или dssh -H127.0.0.1:5000 . или dssh -H:5000 . или dssh -H: . или короче dssh -HH.
  6. Когда используется dssh -20 . или dssh -80 . или короче dssh -0 то телнет или веб-сервер запускается на хосте dssh-сервера а порт указанный в -2 или -8 переносится локально как -L. Управление режимом последовательной консоли по ключу -8 ведётся не по протоколу RFC2217 а по ssh. Похоже на dssh . dssh -20 или dssh . dssh -80. Можно и так dssh -HH . что выглядит похожим на dssh -HH X но при этом dssh -HH . запускаеет на dssh-сервере RFC2217 телнет клиента как dssh -20 . а dssh -HH X не запускает его там а просто использует если он запущен.
  7. Когда используется dssh -0 X это аналог dssh X dssh -20 или короче dssh X dssh -80. Это работает если на X есть dssh

4. Как использовать для совместного доступа к консоли нескольких клиентов:

  1. Запускаем на удалённом хосте dssh-сервер dssh.
  2. Команда dssh -2 5000 . или dssh -20 . или короче dssh -0 запускает на хосте с dssh-сервером RFC2217 телнет-сервер с портом 5000 и локальный телнет-клиент. По умолчанию порт 5000 будет подключен к последовательной консоли на первом USB порту. Ключами -H -U можно указать другой последовательный порт и другую стартовую скорость. Если порт 5000 на хосте с dssh-сервером занят то dssh -20 . или короче dssh -0 запустит только локальный телнет-клиент.
  3. Присоединяемся к консоли на порту 5000 dssh -H:5000 . или короче dssh -HH или с PuTTY dssh -uHH или c telnet dssh -ZHH. Эти команды запускают локальный телнет-клиент. Таких подключений может быть несколько.
  4. Если клиенты находятся на хосте то присоединиться к консоли можно dssh -20 -j : или dssh -20 или как в 4.3.
  5. Другие клиенты в локальной сети хоста могут присоединиться к консоли dssh -20 -j host[:port2200].
  6. Если в пунктах 4.2-4.5 заменить -20 на -80 то вместо telnet://host:5000 будет использоваться http://host:8000 то есть будет запущен веб-сервер на порту 8000. Например dssh -8 8000 или dssh -80. Это используется в dssh -0 которая вместо dssh -20 . запустит dssh -80 ..
  7. Другие клиенты в локальной сети хоста могут присоединиться к консоли dssh -88 -j host[:port2200].
  8. Если в 4.2-4.7 добавить ключ -Hcmd для Windows или -Hbash для Linux или Cygwin то вместо последовательной консоли будет совместно использоваться интерпретатор команд.
  9. Если RFC2217 телнет-сервер с портом 5000 запущен на sshd-сервере X то подключится к нему можно dssh -H:0 X или короче dssh -HH X. Если вместо порта 5000 порт 5002 то dssh -H:2 X. Если вместо порта 5000 порт 7000 то dssh -H:7000 X.

5. Как использовать на Windows 7:

  1. Если через Cygwin, MSYS2/MINGW, git-bash то как обычно dssh X
  2. Иначе вместо dssh X если есть PuTTY будет запущен dssh -u X. Чтобы запустить без PuTTY dssh -T X или dssh -ND:1080 X.
  3. Иначе используем вместе с ssh dssh -Z X.
  4. Иначе для доступа к локальной консоли через браузер dssh -80
  5. Иначе для доступа к удалённой консоли dssh-сервера через браузер dssh -0
  6. Иначе для доступа к удалённой консоли интерпретатора команд dssh-сервера через браузер когда dssh-сервер на Linux dssh -0Hbash или когда dssh-сервер на Windows dssh -0Hcmd.
  7. Иначе чтоб подключиться через браузер к телнет-серверу 192.168.2.1:5000 3.3 через dssh-сервер dssh -H192.168.2.1:5000 -80 . или короче dssh -0H192.168.2.1:
  8. Иначе чтоб подключиться через браузер к телнет-серверу 192.168.2.1:5000 3.4 через sshd-сервер X dssh -H192.168.2.1:5000 -80 X или короче dssh -0H192.168.2.1: X.

6. Как устроена авторизация:

  1. Авторизация основана на вложенном ключе Центра Сертификации .\internal\ca. Его можно обновлять запуском go run cmd/main.go.
  2. Вложение шифруется ключом .\key.enc. Его можно удалить а потом создать новый запустив go run github.com/abakum/embed-encrypt.
  3. Ключ расшифровки вложения извлекается не публикуемой функцией Priv из internal\tool\tool.go. Пример такой функции смотри в eex.
  4. Доступ к экземпляру сервера в пространстве имён посредника ssh-j.com задаётся именем 59d7a68@ssh-j.com где 59d7a68 это начало хэша комита git смотри git log -1 или первую строку при запуске dssh -V то есть без дополнительный параметров клиент dssh : подключится к dssh-серверу через посредника если они одного комита.
  5. Для доступа клиента к dssh-серверу другого комита нужно указать имя через ключ -l dssh -l 59d7a68 :.
  6. Врочем вместо начала хэша комита можно использовать что-то попроще например переименовываем файл dssh в ivanov и посылаем Иванову. Он запускает dssh-сервер ivanov а мы подключаемся как dssh -l ivanov :.
  7. Если Петров умеет запускать программы с параметром то можно и не переименовывать dssh в petroff. Петров запустит dssh -l petroff а мы dssh -l petroff :.
  8. Для доступа к dssh-серверу через putty, plink или ssh важно иметь доступ к агенту ключей с хотя бы одним ключём например id_rsa и хоть раз запустить dssh . exit чтоб записать сертификат замка в ~/.ssh/id_rsa-cert.pub и сертификат хоста в ~/.ssh/dssh.

7. Что было доделанно в tssh:

  1. Вывод кастомных сообщения - DebugF и WarningF из login.go.
  2. Для красоты - type StringSet из login.go, type afterDo []func() для afterLoginFuncs, onExitFuncs, restoreStdFuncs из main.go.
  3. Глобальный конфиг для Windows - initUserConfig из config.go, resolveEtcDir, ExpandEnv в getHostKeyCallback из login.go, config.go.
  4. Авторизация хостов по сертификатам - caKeysCallback, caKeys в getHostKeyCallback из cert.go.
  5. Авторизация клиентов по сертификатам - addCertSigner, args.Config.GetAllSigner, args.Config.GetAllCASigner, idKeyAlgorithms в getPublicKeysAuthMethod из login.go.
  6. Чтение HostKeyAlgorithms - setupHostKeyAlgorithmsConfig из login.go, algo.go. Смотри ssh -Q HostKeyAlgorithms.
  7. Перенос агента авторизации - getForwardAgentAddr, getAgentClient в sshAgentForward из login.go.
  8. Чтение ExitOnForwardFailure - dynamicForward, localForward, remoteForward, sshForward из forward.go .
  9. Запуск в Windows 7 без Cygwin и MSYS2 через -T - setupVirtualTerminal, sttyExecutable из term_windows.go.
  10. Чтение IdentitiesOnly в getPublicKeysAuthMethod из login.go.
  11. Уникальный SecretEncodeKey и подсказка encPassword bar при указании -o Password=foo в getPasswordAuthMethod из login.go.
  12. Возможность прервать dynamicForward, localForward, remoteForward по Ctr-C используя restoreStdFuncs.Cleanup перед ss.client.Wait в sshStart из main.go.
  13. Возможность прервать сессию по <Enter><EscapeChar>. newTildaReader в wrapStdIO из trzsz.go и newServerWriteCloser в sshLogin из login.go.
  14. Для системного прокси Windows нужен socks4 поэтому github.com/smeinecke/go-socks5 вместо github.com/armon/go-socks5 в forward.go.
  15. goScanHostKeys ищет все ключи хоста для добавки в known_hosts. Есть мнение, что это не безопасно.
  16. Чтение KexAlgorithms - setupKexAlgorithmsConfig из login.go, kex.go. Смотри ssh -Q KexAlgorithms.
  17. Исправлена опечатка в keepAlive
  18. makeStdinRaw для stdioForward в sshStart.

8. Как ещё можно использовать dssh:

  • Y. как X
  1. Если запустить на хосте dssh и проверив доступ dssh : потом к хосту можно подключиться для удалённой разработки через Remote - SSH extension выбрав алиас ssh-j или ":" в Connect to Host.

  2. Благодаря tssh 0.1 можно прописать в ~/.ssh/config после Host proxy encPassword bar и DynamicForward 127.0.0.1:1080 чтоб не вводить пароль при запуске dssh -5 proxy для использования Socks5 прокси 7.11. Чтоб ssh не ругался на неизвестный параметр encPassword в начале ~/.ssh/config вставьте IgnoreUnknown *

  3. Для системного прокси на Windows нужен Socks4 прокси поэтому dssh proxy 7.14.

  4. В 4.11 можно вместо интерпретатора команд указывать команду или посредника. Например dssh -Htop . это почти то же что и dssh -t . top. Вот только значение ключа -H если не содержит или : не должно заканчиваться на цифру - иначе это будет принято за порт последовательной консоли. Например вместо dssh -Htest2 . надо dssh -H"test2 " . Если в значение ключа -H есть пробелы то пробел в конец можно не добавлять. Например dssh -H"ping 8.8.8.8". Если в значение ключа -H есть : то это посредник и может заканчиваться на цифру.

  5. Команды с -Hcmd или -Hbash можно использовать для отладки когда на хосте нет последовательно порта.

  6. Можно использовать dssh как посредника: Если у клиента AX есть доступ к телнет-серверу по адресу host:port и доступ к sshd-серверу X то отдаём эту консоль через X dssh -Hhost:[port5000] -20 X или короче dssh -sHhost: X если у клиента BXBY есть доступ к sshd-серверам X и Y то используем её dssh -HH X или заходим на X dssh X и передаём её на Y dssh -sHH Y или короче dssh -t X dssh -sHH Y если у клиента СY есть доступ к sshd-серверу Y то используем её dssh -HH Y. Все команды управления режимом последовательной консоли передаются по цепочке посредников. Вместо последовательной консоли может быть консоль интерпретатора команд. Вместо sshd-серверов могут быть dssh-сервера: Если у клиента A есть доступ к телнет-серверу по адресу host:[port5000] и доступ к dssh-серверу то отдаём эту консоль dssh -sH host:[port5000] если у клиента BY есть доступ к dssh-серверу и к sshd-серверу Y то используем её dssh -HH или передаём её на Y dssh . dssh -sHH Y если у клиента СY есть доступ к sshd-серверу Y то используем её dssh -HH Y.

  7. Можно использовать dssh в качестве посредника в ~/.ssh/config ProxyCommand dssh -W %h:%p . как ProxyCommand ssh -W %h:%p ssh-j. Например dssh -J ssh-j X как Host X и ProxyCommand dssh -W %h:%p .

  8. Если для Host overSocks5 указать ProxyCommand plink -load %n -raw %h -P %p и ProxyPutty socks5://127.0.0.1:1080 то в PuTTY\Sessions\overSocks5 будет записано, ProxyMethod=2 ProxyHost=127.0.0.1 ProxyPort=1080 и plink сделает то же что и ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p или ProxyCommand connect -S 127.0.0.1:1080 %h %p ssh-connect. Можно задать и ProxyPutty socks4://host[:port] как ProxyCommand nc -X 4 -x host[:port] %h %p и ProxyPutty socks4a://host[:port] и ProxyPutty http://host[:port] как ProxyCommand nc -X connect -x host[:port] %h %p и ProxyPutty ${http_proxy}. Если в Host overSocks5 указан ProxyPutty то PuTTY не будет использовать ProxyCommand а ssh будет. Можно отдельно указать для Host D1080 ProxyPutty socks5://127.0.0.1:1080 а для Host overSocks5 ProxyCommand plink -load D1080 -raw %h -P %p. Приятно, что это сработает и на Windows и на Linux если установлен plink.

  9. Можно использовать dssh-клиента в качестве посредника для доступа к dssh-серверу через socks5://127.0.0.1:1080 как dssh -45ND1080 .

  10. Чтоб перезапустить dssh-сервер используйте ключ -r или --restart. Сервер остановится и запустится через 15 секунд.

  11. Чтоб остановить dssh-сервер используйте ключ --stop.

  12. Если из корпоративной сети невозможно подключиться к dssh-серверу командой dssh -j host:port но возможно с алиаса jh то подключаемся dssh -J jh -j host:port

  13. Передавать VNC трафик можно и через посредника, но не будем злоупотреблять его добротой - лучше использовать VNC напрямую: 13.1 Показывающий (vnc-сервер) стартует dssh-сервер c доступом через посредника dssh. 13.2 Наблюдатель (vnc-клиент) запускает слушающего vnc-клиента cd /d c:\Program Files\TightVNC&tvnviewer -listen или cd /d c:\Program Files (x86)\RealVNC\VNC Viewer&vncviewer -listen. Мне нравятся версии 5. 13.3 Стартует локальный dssh-сервер c доступом напрямую dssh _ если нет DDNS запоминает внешний IP - например host. 13.4 В новой консоле подключается к dssh-серверу показывающего через посредника dssh :. 13.5 Стартует перенос порта 5500 с показывающего хоста на свой хост через внешний IP dssh -NL:127.0.0.1:5500:127.0.0.1:5500 -j host. 13.6 В новой консоле подключается к dssh-серверу показывающего через посредника dssh :. Если показывающий на Windows то cd /d c:\Program Files\TightVNC. 13.7 Если показывающий на Windows и vnc-сервер остановлен то запускает его tvnserver -start. Если показывающий на Linux запускает vnc-сервер vncserver -SecurityTypes None :2. 13.8 Подключает его к своему слушающему vnc-клиенту на Windows tvnserver -controlservice -connect 127.0.0.1. На Linux для TigerVNC vncconfig -display :2 -connect 127.0.0.1 для TightVNC vncconnect -display :2 127.0.0.1 13.9 Останавливает vnc-сервер на Windows если не был запущен tvnserver -stop или отключает наблюдателей tvnserver -controlservice -disconnectall. На Linux vncserver -kill :2. 13.10 Останавливает слушающего vnc-клиента taskkill /F /IM tvnviewer.exe или taskkill /F /IM vncviewer.exe. 13.11 Перезапускает dssh-сервер на vnc-сервере чтоб остановить перенос порта 5500 dssh --restart :. 13.12 Останавливает локальный dssh-сервер c доступом через WAN dssh --stop ..

  14. Вот скрипт для VNC где наблюдатель с адресом direct.accesible.dssh на Windows и показывающий это TightVNC на Windows.

  15. Вот скрипт для VNC где наблюдатель с адресом direct.accesible.dssh на Windows а показывающий это TigerVNC на Linux.

  16. Как на 8.14 или 8.15 для VNC где на показывающем dssh а на наблюдателе с адресом direct.accesible.dssh dssh --vnc 5500 _ или dssh --vnc 0 _ или короче dssh -70 _. Это сработает и за NAT если роутер с WAN адресом direct.accesible.dssh переносит порт 2200 с WAN на LAN адрес vnc.viewer.with.dssh:2200.

  17. Вот скрипт для VNC где показывающий с адресом direct.accesible.dssh это TightVNC на Windows и наблюдатель на Windows.

  18. Вот скрипт для VNC где показывающий с адресом direct.accesible.dssh это TigerVNC на Linux а наблюдатель на Windows.

  19. Как на 8.17 или 8.18 для VNC где на показывающем с адресом direct.accesible.dssh dssh _ а на наблюдателе dssh --vnc 5500 -j direct.accesible.dssh или dssh --vnc 0 -j direct.accesible.dssh или короче dssh -70 -j direct.accesible.dssh. Это сработает и за NAT если роутер с WAN адресом direct.accesible.dssh переносит порт 2200 с WAN на LAN адрес vnc.server.with.dssh:2200.

  20. Если dssh-сервер на direct.accesible.dssh dssh + то можно подключится к нему сначала через посредника dssh -T : dssh -j чтоб узнать direct.accesible.dssh а потом напрямую dssh -j direct.accesible.dssh или короче dssh -j.

  21. Если показывающий на direct.accesible.dssh dssh + то подключаем наблюдателя dssh -70 : или dssh -j70.

  22. Для наблюдения за VNC на sshd с адресом X:2 dssh -72 X

9. Удалённый доступ к последовательной консоли на хосте с RouterOS или с ser2net или с hub4com:

  1. Подключаем USB2serial переходник в USB порт устройства под управлением RouterOS.
  2. Запускаем удалённый доступ к последовательной консоли RouterOS /port remote-access add port=usb1 tcp-port=5000 protocol=raw Ports. Для смены режима на консоле /port set 0 flow-control=none stop-bits=1 parity=none baud-rate=9600 /port set 0 baud-rate=auto
  3. Если LAN dssh-сервера это 192.168.0.1 а у устройства с RouterOS LAN это 192.168.0.2 то подключаемся dssh -W192.168.0.2:5000 . или dssh . dssh -W192.168.0.2:5000. Это похоже на ssh -W192.168.0.2:5000 ssh-j только ssh не переводит консоль в сырой режим а dssh переводит.
  4. Иначе разрешим доступ с WAN на 22 порт tcp /ip firewall filter add action=accept chain=input dst-port=22 protocol=tcp для доступа по SSH с WAN. И разрешим доступ с lo по tcp /ip firewall filter add action=accept chain=input in-interface=lo protocol=tcp для туннеля с WAN на 5000 порт. (80 для управления по webfig, 8291 по winbox)
  5. Если алиас RouterOS это X то подключаемся dssh -W5000 X.
  6. Останавливаем удалённый доступ к последовательной консоли RouterOS /port remote-access remove 0
  7. Для возможности смены клиентом режима удалённой последовательной консоли через протокол RFC2217 запускаем аналог ser2net на RouterOS /port remote-access add port=usb1 tcp-port=5000
  8. Если LAN хоста с запущенными dssh это 192.168.0.1 а у устройства с RouterOS LAN это 192.168.0.2 то подключаемся dssh -H192.168.0.2:5000 . или короче dssh -H192.168.0.2: ..
  9. Если алиас RouterOS это X то подключаемся dssh -H127.0.0.1:5000 X или dssh -H: X или короче dssh -HH X это то же что и dssh -NL127.0.0.1:5000:127.0.0.1:5000 X а потом dssh -H:.
  10. Если запустить ssh -NL127.0.0.1:5000:127.0.0.1:5000 X то dssh -H: сработает только однажды потому, что после закрытия dssh -H: статус /port remote-access останется подключенным. Это особенность ssh.
  11. Если алиас хоста с sshd-сервером X и на нём запущен ser2net -C "5000:telnet:0:/dev/ttyUSB1:115200 8DATABITS NONE 1STOPBIT LOCAL -XONXOFF remctl" или hub4com как com2tcp-rfc2217 com1 5000 типа dssh -H1 -20 + то подключаемся dssh -H127.0.0.1:5000 X или dssh -H: X или короче dssh -HH X.
  12. Если на хосте с dssh-сервером запущен ser2net -C "127.0.0.1,5000:telnet:0:/dev/ttyUSB1:115200 8DATABITS NONE 1STOPBIT LOCAL -XONXOFF remctl" или hub4com как com2tcp-rfc2217 --interface 127.0.0.1 com1 5000 типа dssh -H1 -20 то подключаемся dssh -H127.0.0.1:5000 . или dssh -H: . или короче dssh -HH.
  13. Если ser2net или hub4com доступен по LAN как x и на нём запущен ser2net -C "x,5000:telnet:0:/dev/ttyUSB1:115200 8DATABITS NONE 1STOPBIT LOCAL -XONXOFF remctl" или com2tcp-rfc2217 --interface x com1 5000 типа dssh -H1 -20 x то подключаемся dssh -Hx:5000 или dssh -Hx:.

10. Параметры для локального доступа:

  1. -z то же что и -UU как в 1.1.
  2. -20 x то же что -UU + стартует RFC2217 телнет-сервер на x:5000 как в 1.11 + стартует RFC2217 телнет-клиент в том же окне.
  3. -ZH host:port5000 то же что и telnet -e^Q host port5000 для Windows в новом окне как в 1.6. Для Cygwin на Windows 7 или Linux в том же окне.
  4. -Z20 x то же что и -20 x + telnet -e^Q x 5000 для Windows в новом окне. Для Cygwin на Windows 7 или Linux в том же окне.
  5. -Z x как в 10.4.
  6. -zZ x то же что и -20 x + telnet -e^Q x 5000 в том же окне и без управлением режимом консоли.
  7. -u20 x то же что и -20 x + putty -telnet x -P 5000 как в 1.4.
  8. -u как и -uUU это putty -serial y -sercfg 9600,8,N,1,N если перед этим режим был задан как -U9 и без управлением режимом консоли.
  9. -zu как и -zuUU это plink -serial y -sercfg 9600,8,N,1,N если перед этим режим был задан как -U9 и без управлением режимом консоли. Для Cygwin на Windows 7 putty -serial y -sercfg 9600,8,N,1,N.
  10. -uH host:port5000 то же что и putty -telnet host -P port5000 как в 1.4.
  11. -88 x то же что -UU + стартует веб-сервер на x:8008 + chrome http://x:8008.
  12. -22 -88 x то же что -UU + стартует RFC2217 телнет-сервер на x:5002 + стартует веб-сервер на x:8008 + chrome http://x:8008

11. Параметры для удалённого доступа:

  1. -z . как в 10.1 только на хосте с dssh. Как ssh : dssh -z.
  2. -20 . или -HH . или короче -0 как в 10.2 только на хосте с dssh + 127.0.0.1:5000 переносится локально как -L на 127.0.0.1:5000 сервера.
  3. -H host:port5000 . то же что и dssh -W host:port5000 . только с управлением по RFC2217 или RFC1073 как в 3.5.
  4. -Z20 . или короче -Z0 то же что и -20 . как в 11.2 + telnet -e^Q 127.0.0.1 5000 учитывая перенос портов управление будет консолью на хосте сервера.
  5. -Z X то же что и ssh X для Windows новом окне.
  6. -zZ X то же что и ssh X для Windows в том же окне.
  7. -u20 . или короче -u0 то же что и -20 . + putty -telnet 127.0.0.1 -P 5000 учитывая перенос портов управление будет консолью на хосте сервера.
  8. -u X то же что и putty @X для Windows новом окне как в 1.4. Для Linux то же что и plink -load X. Перед стартом putty алиас X создаётся из ssh алиаса X.
  9. -zu X то же что и plink -load X как в 11.8.
  10. -s . как в 10.2.
  11. -88 . то же что -UU + стартует веб-сервер на хосте dssh-сервера 127.0.0.1:8008 + локальный порт 127.0.0.1:8008 переносится на порт 127.0.0.1:8008 сервера + chrome http://127.0.0.1:8008 учитывая перенос портов управление консолью будет на хосте сервера.
  12. -22 -88 . то же что -UU + 127.0.0.1:5002 и 127.0.0.1:8008 переносятся на 127.0.0.1:5002 и 127.0.0.1:8008 сервера + стартует RFC2217 телнет-сервер на 127.0.0.1:5002 + стартует веб-сервер на 127.0.0.1:8008 + chrome http://127.0.0.1:8008 учитывая перенос портов управление консолью будет на хосте сервера.
  13. -s20 X или короче -s X как в 10.2 + 127.0.0.1:5000 sshd-сервера X переносится как -R на 127.0.0.1:5000 локального телнет-сервера с RFC2217. Это работает не только c dssh-сервером.
  14. -H host:[port5000] X 127.0.0.1:port5000 переносится sshd-сервером X на host:port5000 + локальный телнет-клиент по RFC2217 управляет через sshd-сервер X телнет-сервером с RFC2217 на host:port5000 как в 9.9. Это работает не только c dssh-сервером. Отданная как в 11.3 через sshd-сервер X консоль может использоваться как в 11.4 так и 11.2.
  15. -s как в 10.2.
  16. dssh -t X dssh -22 или ssh -t X dssh -22 как 11.2 только через sshd-сервер X.

12. Что делать если запутались в параметрах.

  1. Читать исходники. Иногда исходники и коментарии понятней руководств.

13. Что делать если запутались в исходниках.

  1. Писать свою программу тщательно комментировать её и писать руководства. \8^)

About

(tssh from trzsz)+(CA key with embed-encrypt)+(sshd from gliderlabs)+(access over NAT using jumphost ssh-j.com)+(ser2net with putty or direct connect to serial console or over browser)

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published