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)
- Lonny Wong.
- Paul Scheduikat.
- Glider Labs.
- ValdikSS.
- 9elements.
- Patrick Rudolph.
- Simon Tatham.
- Corey Minyard.
- Vyacheslav Frolov.
- MikroTik.
- Cristian Maglie
- 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.
- Вместо 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. - Вместо PuTTY, plink для доступа к локальной последовательной консоли на порту
COM1
для Windowsdssh -HCOM1
или короче с суффиксом портаdssh -H1
. - Вместо PuTTY, plink,
busybox microcom
для доступа к локальной последовательной консоли на порту/dev/ttyUSB0
не для Windowsdssh -H/dev/ttyUSB0
илиdssh -HttyUSB0
или корочеdssh -H0
. - Вместе с PuTTY для доступа к y
dssh -u
. На Linux и Darwin используется putty или plink если их нет тоbusybox microcom
. - Вместе с plink для доступа к y
dssh -zu
или корочеdssh -u
. Ключ-z
вместе с ключами-u
или-Z
значит в том же окне. - Вместе с telnet для доступа к y через telnet://127.0.0.1:5000
dssh -Z
. Для Windows в новом окне. - Вместе с telnet для доступа к y через telnet://127.0.0.1:5000
dssh -zZ
. - В окне веб браузера для доступа к y через http://127.0.0.1:8000
dssh -8 8000
илиdssh -80
или корочеdssh -s
. - Как в 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
. - Как в 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 это последний сетевой интерфейс. - Как в 1.9 но через telnet://192.168.1.1:5000
dssh -25000 0.0.0.0
илиdssh -20 +
или корочеdssh -s +
. - Как в 1.10 но через telnet://192.168.2.1:5000
dssh -25000 192.168.2.1
или корочеdssh -s _
. - Когда используется
dssh -20 -88
это всё равно, что совместноdssh -20
иdssh -H: -88
. Режим посредника. - Команда
dssh -2 port5000 x
работает и как RFC2217 телнет-клиент 1.15 и как RFC2217 телнет-сервер типа ser2net только без команд для модема. - Команда
dssh -H host:[port5000]
работает как RFC2217 телнет-клиент и может удалённо менять режимы работы последовательной консоли: baudRate - скорость в бодах, dataBits - количесто бит в символе, parity - чётность, stopBits - количество стоповых бит. Еслиdssh -HH
то пробуем доступ через LANdssh -H:
иначе через локальный dssh-серверdssh -H: .
иначе через dssh-серверdssh -H: :
- Чтоб поделиться локальной последовательной консолью через 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
. - Чтоб поделиться локальной последовательной консолью через dssh-сервер
dssh -s20 .
или корочеdssh -s .
. Для подключения к этой консолиdssh -HH
или без управленияdssh -W5000 .
или без управления и без перевода консоли в сырой режимssh -W127.0.0.1:5000 :
. - Чтоб поделиться в LAN локальной последовательной консолью без dssh-сервера и без sshd-сервера
dssh -20
или корочеdssh -s
. Для подключения к этой консолиdssh -H:
или корочеdssh -HH
или без управленияdssh -W5000
илиtelnet 127.0.0.1 5000
. - Команда
dssh -s host
это то же что иdssh -80 host
. Чтоб управляющие последовательности ANSI обрабатывать в веб-браузере.
- port2200. суффикс порта 2200 от 0 до 9 значит порт от 2200 до 2209 или port.
- При наличии на хосте Сети запускаем dssh-сервер
dssh
илиdssh +
. Сервер будет ждать на 127.0.0.1:2200 или соответствено на 0.0.0.0:2200. - При наличии у клиента Сети подключаемся к dssh-серверу
dssh .
Это сработает и за NAT так как подключение к dssh-серверу идёт через посредникаssh-j.com
0.4. - При отсутствии на хосте Сети запускаем dssh-сервер
dssh +
илиdssh _
илиdssh -d x[:port2200]
и сообщаем клиенту x[:port2200]. - При отсутствии на клиенте Сети но при наличии локальной сети подключаемся к dssh-серверу
dssh -j x[:port2200]
. - Если клиент находится на хосте с dssh-сервером, подключаемся к нему без посредников
dssh .
илиdssh -j :
илиdssh -j x[:port2200]
или через посредникаdssh :
. - Так же как в 1.4 и 1.5 но с параметром
.
. Например вместе с PuTTYdssh -u .
или вместе c plinkdssh -zu .
. Должно выполняться условие 6.8. - Вместе с ssh в отдельном окне
dssh -Z .
похоже на 1.6 или вместе с ssh в том же окнеdssh -zZ .
похоже на 1.7. Должно выполняться условие 6.8. C Cygwin на Windows 7dssh -Z .
значитdssh -zZ .
- Так же как в 1.8-1.12 но с параметром
-Hcmd
для Windows или-Hbash
для Linux. Напримерdssh -Hcmd -20 .
или корочеdssh -0Hcmd
или через браузер и Linuxdssh -0Hbash -88
. - Вместо
ssh X
какdssh X
и наоборот вместоdssh :
dssh -Z :
какssh :
- Как в 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. - Если на 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 управлением режимом последовательной консоли. - Если на 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 только отовсюду. - Если на 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
. - Если на хосте запущен 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
. - Когда используется
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
не запускает его там а просто использует если он запущен. - Когда используется
dssh -0 X
это аналогdssh X dssh -20
или корочеdssh X dssh -80
. Это работает если на X естьdssh
- Запускаем на удалённом хосте dssh-сервер
dssh
. - Команда
dssh -2 5000 .
илиdssh -20 .
или корочеdssh -0
запускает на хосте с dssh-сервером RFC2217 телнет-сервер с портом 5000 и локальный телнет-клиент. По умолчанию порт 5000 будет подключен к последовательной консоли на первом USB порту. Ключами-H
-U
можно указать другой последовательный порт и другую стартовую скорость. Если порт 5000 на хосте с dssh-сервером занят тоdssh -20 .
или корочеdssh -0
запустит только локальный телнет-клиент. - Присоединяемся к консоли на порту 5000
dssh -H:5000 .
или корочеdssh -HH
или с PuTTYdssh -uHH
или c telnetdssh -ZHH
. Эти команды запускают локальный телнет-клиент. Таких подключений может быть несколько. - Если клиенты находятся на хосте то присоединиться к консоли можно
dssh -20 -j :
илиdssh -20
или как в 4.3. - Другие клиенты в локальной сети хоста могут присоединиться к консоли
dssh -20 -j host[:port2200]
. - Если в пунктах 4.2-4.5 заменить
-20
на-80
то вместо telnet://host:5000 будет использоваться http://host:8000 то есть будет запущен веб-сервер на порту 8000. Напримерdssh -8 8000
илиdssh -80
. Это используется вdssh -0
которая вместоdssh -20 .
запуститdssh -80 .
. - Другие клиенты в локальной сети хоста могут присоединиться к консоли
dssh -88 -j host[:port2200]
. - Если в 4.2-4.7 добавить ключ
-Hcmd
для Windows или-Hbash
для Linux или Cygwin то вместо последовательной консоли будет совместно использоваться интерпретатор команд. - Если RFC2217 телнет-сервер с портом 5000 запущен на sshd-сервере X то подключится к нему можно
dssh -H:0 X
или корочеdssh -HH X
. Если вместо порта 5000 порт 5002 тоdssh -H:2 X
. Если вместо порта 5000 порт 7000 тоdssh -H:7000 X
.
- Если через Cygwin, MSYS2/MINGW, git-bash то как обычно
dssh X
- Иначе вместо
dssh X
если есть PuTTY будет запущенdssh -u X
. Чтобы запустить без PuTTYdssh -T X
илиdssh -ND:1080 X
. - Иначе используем вместе с ssh
dssh -Z X
. - Иначе для доступа к локальной консоли через браузер
dssh -80
- Иначе для доступа к удалённой консоли dssh-сервера через браузер
dssh -0
- Иначе для доступа к удалённой консоли интерпретатора команд dssh-сервера через браузер когда dssh-сервер на Linux
dssh -0Hbash
или когда dssh-сервер на Windowsdssh -0Hcmd
. - Иначе чтоб подключиться через браузер к телнет-серверу 192.168.2.1:5000 3.3 через dssh-сервер
dssh -H192.168.2.1:5000 -80 .
или корочеdssh -0H192.168.2.1:
- Иначе чтоб подключиться через браузер к телнет-серверу 192.168.2.1:5000 3.4 через sshd-сервер X
dssh -H192.168.2.1:5000 -80 X
или корочеdssh -0H192.168.2.1: X
.
- Авторизация основана на вложенном ключе Центра Сертификации
.\internal\ca
. Его можно обновлять запускомgo run cmd/main.go
. - Вложение шифруется ключом
.\key.enc
. Его можно удалить а потом создать новый запустивgo run github.com/abakum/embed-encrypt
. - Ключ расшифровки вложения извлекается не публикуемой функцией Priv из
internal\tool\tool.go
. Пример такой функции смотри в eex. - Доступ к экземпляру сервера в пространстве имён посредника ssh-j.com задаётся именем
59d7a68@ssh-j.com
где 59d7a68 это начало хэша комита git смотриgit log -1
или первую строку при запускеdssh -V
то есть без дополнительный параметров клиентdssh :
подключится к dssh-серверу через посредника если они одного комита. - Для доступа клиента к dssh-серверу другого комита нужно указать имя через ключ
-l
dssh -l 59d7a68 :
. - Врочем вместо начала хэша комита можно использовать что-то попроще например переименовываем файл
dssh
вivanov
и посылаем Иванову. Он запускает dssh-серверivanov
а мы подключаемся какdssh -l ivanov :
. - Если Петров умеет запускать программы с параметром то можно и не переименовывать
dssh
вpetroff
. Петров запуститdssh -l petroff
а мыdssh -l petroff :
. - Для доступа к dssh-серверу через
putty
,plink
илиssh
важно иметь доступ к агенту ключей с хотя бы одним ключём напримерid_rsa
и хоть раз запуститьdssh . exit
чтоб записать сертификат замка в~/.ssh/id_rsa-cert.pub
и сертификат хоста в~/.ssh/dssh
.
- Вывод кастомных сообщения - DebugF и WarningF из login.go.
- Для красоты - type StringSet из login.go, type afterDo []func() для afterLoginFuncs, onExitFuncs, restoreStdFuncs из main.go.
- Глобальный конфиг для Windows - initUserConfig из config.go, resolveEtcDir, ExpandEnv в getHostKeyCallback из login.go, config.go.
- Авторизация хостов по сертификатам - caKeysCallback, caKeys в getHostKeyCallback из cert.go.
- Авторизация клиентов по сертификатам - addCertSigner, args.Config.GetAllSigner, args.Config.GetAllCASigner, idKeyAlgorithms в getPublicKeysAuthMethod из login.go.
- Чтение HostKeyAlgorithms - setupHostKeyAlgorithmsConfig из login.go, algo.go. Смотри
ssh -Q HostKeyAlgorithms
. - Перенос агента авторизации - getForwardAgentAddr, getAgentClient в sshAgentForward из login.go.
- Чтение ExitOnForwardFailure - dynamicForward, localForward, remoteForward, sshForward из forward.go .
- Запуск в Windows 7 без Cygwin и MSYS2 через
-T
- setupVirtualTerminal, sttyExecutable из term_windows.go. - Чтение IdentitiesOnly в getPublicKeysAuthMethod из login.go.
- Уникальный SecretEncodeKey и подсказка
encPassword bar
при указании-o Password=foo
в getPasswordAuthMethod из login.go. - Возможность прервать dynamicForward, localForward, remoteForward по Ctr-C используя restoreStdFuncs.Cleanup перед ss.client.Wait в sshStart из main.go.
- Возможность прервать сессию по
<Enter><EscapeChar>.
newTildaReader в wrapStdIO из trzsz.go и newServerWriteCloser в sshLogin из login.go. - Для системного прокси Windows нужен socks4 поэтому github.com/smeinecke/go-socks5 вместо github.com/armon/go-socks5 в forward.go.
- goScanHostKeys ищет все ключи хоста для добавки в known_hosts. Есть мнение, что это не безопасно.
- Чтение KexAlgorithms - setupKexAlgorithmsConfig из login.go, kex.go. Смотри
ssh -Q KexAlgorithms
. - Исправлена опечатка в keepAlive
- makeStdinRaw для stdioForward в sshStart.
-
Если запустить на хосте
dssh
и проверив доступdssh :
потом к хосту можно подключиться для удалённой разработки черезRemote - SSH extension
выбрав алиасssh-j
или ":" вConnect to Host
. -
Благодаря 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 *
-
Для системного прокси на Windows нужен Socks4 прокси поэтому
dssh proxy
7.14. -
В 4.11 можно вместо интерпретатора команд указывать команду или посредника. Например
dssh -Htop .
это почти то же что иdssh -t . top
. Вот только значение ключа-H
если не содержит:
не должно заканчиваться на цифру - иначе это будет принято за порт последовательной консоли. Например вместоdssh -Htest2 .
надоdssh -H"test2 " .
Если в значение ключа-H
есть пробелы то пробел в конец можно не добавлять. Напримерdssh -H"ping 8.8.8.8"
. Если в значение ключа-H
есть:
то это посредник и может заканчиваться на цифру. -
Команды с
-Hcmd
или-Hbash
можно использовать для отладки когда на хосте нет последовательно порта. -
Можно использовать
dssh
как посредника: Если у клиентаAX
есть доступ к телнет-серверу по адресу host:port и доступ к sshd-серверу X то отдаём эту консоль через Xdssh -Hhost:[port5000] -20 X
или корочеdssh -sHhost: X
если у клиентаBXBY
есть доступ к sshd-серверам X и Y то используем еёdssh -HH X
или заходим на Xdssh X
и передаём её на Ydssh -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
или передаём её на Ydssh . dssh -sHH Y
если у клиентаСY
есть доступ к sshd-серверу Y то используем еёdssh -HH Y
. -
Можно использовать
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 .
-
Если для
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. -
Можно использовать dssh-клиента в качестве посредника для доступа к dssh-серверу через
socks5://127.0.0.1:1080
какdssh -45ND1080 .
-
Чтоб перезапустить dssh-сервер используйте ключ
-r
или--restart
. Сервер остановится и запустится через 15 секунд. -
Чтоб остановить dssh-сервер используйте ключ
--stop
. -
Если из корпоративной сети невозможно подключиться к dssh-серверу командой
dssh -j host:port
но возможно с алиаса jh то подключаемсяdssh -J jh -j host:port
-
Передавать 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 с показывающего хоста на свой хост через внешний IPdssh -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-клиенту на Windowstvnserver -controlservice -connect 127.0.0.1
. На Linux для TigerVNCvncconfig -display :2 -connect 127.0.0.1
для TightVNCvncconnect -display :2 127.0.0.1
13.9 Останавливает vnc-сервер на Windows если не был запущенtvnserver -stop
или отключает наблюдателейtvnserver -controlservice -disconnectall
. На Linuxvncserver -kill :2
. 13.10 Останавливает слушающего vnc-клиентаtaskkill /F /IM tvnviewer.exe
илиtaskkill /F /IM vncviewer.exe
. 13.11 Перезапускает dssh-сервер на vnc-сервере чтоб остановить перенос порта 5500dssh --restart :
. 13.12 Останавливает локальный dssh-сервер c доступом через WANdssh --stop .
. -
Вот скрипт для VNC где наблюдатель с адресом direct.accesible.dssh на Windows и показывающий это TightVNC на Windows.
-
Вот скрипт для VNC где наблюдатель с адресом direct.accesible.dssh на Windows а показывающий это TigerVNC на Linux.
-
Как на 8.14 или 8.15 для VNC где на показывающем
dssh
а на наблюдателе с адресом direct.accesible.dsshdssh --vnc 5500 _
илиdssh --vnc 0 _
или корочеdssh -70 _
. Это сработает и за NAT если роутер с WAN адресом direct.accesible.dssh переносит порт 2200 с WAN на LAN адрес vnc.viewer.with.dssh:2200. -
Вот скрипт для VNC где показывающий с адресом direct.accesible.dssh это TightVNC на Windows и наблюдатель на Windows.
-
Вот скрипт для VNC где показывающий с адресом direct.accesible.dssh это TigerVNC на Linux а наблюдатель на Windows.
-
Как на 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. -
Если dssh-сервер на direct.accesible.dssh
dssh +
то можно подключится к нему сначала через посредникаdssh -T : dssh -j
чтоб узнать direct.accesible.dssh а потом напрямуюdssh -j direct.accesible.dssh
или корочеdssh -j
. -
Если показывающий на direct.accesible.dssh
dssh +
то подключаем наблюдателяdssh -70 :
илиdssh -j70
. -
Для наблюдения за VNC на sshd с адресом X:2
dssh -72 X
- Подключаем USB2serial переходник в USB порт устройства под управлением RouterOS.
- Запускаем удалённый доступ к последовательной консоли 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
- Если 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 переводит. - Иначе разрешим доступ с 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) - Если алиас RouterOS это X то подключаемся
dssh -W5000 X
. - Останавливаем удалённый доступ к последовательной консоли RouterOS
/port remote-access remove 0
- Для возможности смены клиентом режима удалённой последовательной консоли через протокол RFC2217 запускаем аналог ser2net на RouterOS
/port remote-access add port=usb1 tcp-port=5000
- Если LAN хоста с запущенными
dssh
это 192.168.0.1 а у устройства с RouterOS LAN это 192.168.0.2 то подключаемсяdssh -H192.168.0.2:5000 .
или корочеdssh -H192.168.0.2: .
. - Если алиас 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:
. - Если запустить
ssh -NL127.0.0.1:5000:127.0.0.1:5000 X
тоdssh -H:
сработает только однажды потому, что после закрытияdssh -H:
статус/port remote-access
останется подключенным. Это особенность ssh. - Если алиас хоста с 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
. - Если на хосте с 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
. - Если 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:
.
-z
то же что и-UU
как в 1.1.-20 x
то же что-UU
+ стартует RFC2217 телнет-сервер наx:5000
как в 1.11 + стартует RFC2217 телнет-клиент в том же окне.-ZH host:port5000
то же что иtelnet -e^Q host port5000
для Windows в новом окне как в 1.6. Для Cygwin на Windows 7 или Linux в том же окне.-Z20 x
то же что и-20 x
+telnet -e^Q x 5000
для Windows в новом окне. Для Cygwin на Windows 7 или Linux в том же окне.-Z x
как в 10.4.-zZ x
то же что и-20 x
+telnet -e^Q x 5000
в том же окне и без управлением режимом консоли.-u20 x
то же что и-20 x
+putty -telnet x -P 5000
как в 1.4.-u
как и-uUU
этоputty -serial y -sercfg 9600,8,N,1,N
если перед этим режим был задан как-U9
и без управлением режимом консоли.-zu
как и-zuUU
этоplink -serial y -sercfg 9600,8,N,1,N
если перед этим режим был задан как-U9
и без управлением режимом консоли. Для Cygwin на Windows 7putty -serial y -sercfg 9600,8,N,1,N
.-uH host:port5000
то же что иputty -telnet host -P port5000
как в 1.4.-88 x
то же что-UU
+ стартует веб-сервер наx:8008
+chrome http://x:8008
.-22 -88 x
то же что-UU
+ стартует RFC2217 телнет-сервер наx:5002
+ стартует веб-сервер наx:8008
+chrome http://x:8008
-z .
как в 10.1 только на хосте сdssh
. Какssh : dssh -z
.-20 .
или-HH .
или короче-0
как в 10.2 только на хосте сdssh
+ 127.0.0.1:5000 переносится локально как-L
на 127.0.0.1:5000 сервера.-H host:port5000 .
то же что иdssh -W host:port5000 .
только с управлением по RFC2217 или RFC1073 как в 3.5.-Z20 .
или короче-Z0
то же что и-20 .
как в 11.2 +telnet -e^Q 127.0.0.1 5000
учитывая перенос портов управление будет консолью на хосте сервера.-Z X
то же что иssh X
для Windows новом окне.-zZ X
то же что иssh X
для Windows в том же окне.-u20 .
или короче-u0
то же что и-20 .
+putty -telnet 127.0.0.1 -P 5000
учитывая перенос портов управление будет консолью на хосте сервера.-u X
то же что иputty @X
для Windows новом окне как в 1.4. Для Linux то же что иplink -load X
. Перед стартом putty алиас X создаётся из ssh алиаса X.-zu X
то же что иplink -load X
как в 11.8.-s .
как в 10.2.-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
учитывая перенос портов управление консолью будет на хосте сервера.-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
учитывая перенос портов управление консолью будет на хосте сервера.-s20 X
или короче-s X
как в 10.2 + 127.0.0.1:5000 sshd-сервера X переносится как-R
на 127.0.0.1:5000 локального телнет-сервера с RFC2217. Это работает не только c dssh-сервером.-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.-s
как в 10.2.dssh -t X dssh -22
илиssh -t X dssh -22
как 11.2 только через sshd-сервер X.
- Читать исходники. Иногда исходники и коментарии понятней руководств.
- Писать свою программу тщательно комментировать её и писать руководства. \8^)