- Доступ SSH для новичков
- Терминальные эмуляторы Windows
- Использование Cmder
- Использование Smartty
- Использование putty
- Использование WinSCP
- Linux Terminal Emulators
- macOS Terminal Emulators
- SSH Server
- Properties
- Enabling PKI authentication
- SSH Client
- Simple log-in to remote host
- Log-in from certain IP address of the router
- Log-in using RSA public/private key
- Executing remote commands
- SSH exec
- Retrieve information
Доступ SSH для новичков
Устройство OpenWrt по умолчанию всегда прослушивает доступ к командной строке SSH на порту 22. Для ssh в маршрутизатор» вы вводите команду ssh root@192.168.1.1 в эмуляторе терминала (для маршрутизатора с адресом 192.168.1.1).
В первый раз, когда вы подключитесь к маршрутизатору, вы, вероятно, увидите предупреждение о отпечатке ключа RSA. Если вы уверены, что это адрес вашего маршрутизатора OpenWrt, просто введите yes и нажмите Return. Затем введите пароль, предоставленный вашему маршрутизатору, или нажмите Return, если это начальная настройка. Вот пример сеанса:
Чтобы завершить ssh сеанс на маршрутизаторе, введите exit и нажмите Return.
Остальная часть этой страницы описывает несколько эмуляторов терминала, которые Windows, Linux или macOS могут использовать для доступа к вашему маршрутизатору OpenWrt.
Терминальные эмуляторы Windows
Cmder, Smartty, Putty и WinSCP являются терминальными эмуляторами, которые позволяют вам сходить в маршрутизатор.
Использование Cmder
Cmder для Windows эмулятор терминала с открытым исходным кодом, который работает в Windows. Он может свободно использовать и обеспечивает легкую “оболочку командной строки” которая позволяет вам ssh в OpenWrt. Его привлекательные шрифты и цветовая схема легко видны на глазах. Полное распределение является предпочтительным (over the mini distribution), так как она обеспечивает эмуляцию Баша, с Unix-й набором команд.
Откройте папку Cmder и дважды щелкните Cmder значок. Вы увидите окно Cmder, похожее на изображение ниже.
Чтобы передать ssh в маршрутизатор OpenWrt на 192.168.1.1, введите ssh root@192.168.1.1 затем нажмите Return
Использование Smartty
Smartty дает вам доступ к командной строке для OpenWrt и позволяет вам открывать /редактировать/загружать/загружать файлы в OpenWrt и в целом более современную и удобную для пользователя, чем Putty (еще один инструмент, описанный ниже):
Загрузите Smartty из http://sysprogs.com/SmarTTY/: выберите “загрузить” для установщика или «портативную версию“, если вы хотите, чтобы это была отдельная программа, которая работает без установки.
после установки или после распаковки архива, дважды щелкните по исполняемому файлу SmarTTY.
Вы будете приветствованы окном с двумя вариантами, дважды нажмите “setup новое соединение SSH ” (другая опция предназначена для последовательных подключений, для usb- TTL -ключей и иногда вы подключаетесь к серийным выводам устройства на плате, мы выиграли Не используйте это сейчас).
Имя пользователя: root (это “администратор” и только пользователь по умолчанию OpenWrt)
Пароль: оставьте это поле пустым для вашего первого подключения, а затем напишите пароль, который вы установили (либо в графическом интерфейсе Luci, либо после первого доступа к SSH )
По умолчанию в прошивке OpenWrt отсутствует серверный компонент, позволяющий открывать /редактировать/просматривать/загружать/загружать файлы в Smartty, поэтому после того, как вы подключились к интернету, напишите, opkg update && opkg install openssh-sftp-server чтобы установить его. Если следующий шаг завершится неудачно, возможно, потребуется перезагрузить устройство OpenWrt для запуска этой новой службы.
Теперь вы можете нажать Файл → Открыть удаленный файл чтобы открыть всплывающее окно с файловой системой устройства OpenWrt, и вы можете перемещаться по нему и открывать текстовые файлы, например, как обычно (они будут открываться в окне текстового редактора SmarTTY)
Если вы хотите загрузить или загрузить файлы в/из определенной папки на устройстве, вы можете щелкнуть по меню SCP и выбрать наиболее подходящее действие оттуда.
После первого подключения к устройству Smartty сохранил профиль, поэтому вы можете снова подключиться к тому же устройству (на этом IP -адресе с этим паролем), просто дважды щелкнув значок в первом окне, которое вы видите при запуске Smartty. Вы можете щелкнуть правой кнопкой мыши по этому значку профиля, чтобы изменить его, если необходимо.
Использование putty
Putty дает вам доступ к командной строке для OpenWrt:
Загрузите Putty https://www.putty.org: просто получите 32-разрядную “putty.exe” загрузку из “Alternative binary files” раздела.
перейдите в “Session” категорию окна входа в Putty, найдите поле “Host Name” (or IP address) и просто введите IP -адрес (например, 192.168.1.1 ) вашего устройства OpenWrt, сохраните порт 22 по умолчанию.
Нажмите Open кнопку в нижней части, чтобы открыть соединение. Это вызовет окно оболочки, спрашивая login as . Войдите как root с паролем OpenWrt, который вы определили некоторое время раньше. Если вы еще не установили пароль “root”, вам не будет задан пароль.
Использование WinSCP
WinSCP позволяет просматривать файловую систему OpenWrt в Windows Exlorer, например, в стиле GUI :
Сначала вам необходимо установить SFTP -сервер со стороны OpenWrt, так как WinSCP нуждается в том, чтобы успешно соединиться. В командной строке putty (см. Предыдущий раздел) выполните:
Обычно этого не требуется, но для простоты этого способа перезагрузите ваше устройство OpenWrt, чтобы убедиться, что служба SFTP действительно запущена
Скачать WinSCP из https://winscp.net/eng/download.php, получить не-бета Installation package или portable executables установить или распаковать их на клиенте Windows ,
Нажмите New Site слева, затем введите свой IP -адрес устройства OpenWrt (192.168.1.1) с правой стороны Host name , сохраните порт по умолчанию 22 . В User name enter root, in Password , введите ваш root пароль (или оставьте пустым, если вы не установили пароль еще)
Редактирование конфигурационных файлов OpenWrt с помощью встроенного графического редактора WINSCP:
для редактирования конфигурационного файла OpenWrt с помощью редактора WinSCP с графическим интерфейсом щелкните правой кнопкой мыши файл в WinSCP и выберите “Edit” из контекстного меню.
Linux Terminal Emulators
Все дистрибутивы Linux предоставляют клиентский интерфейс ssh как часть стандартной установки.
Откройте эмулятор терминала и напишите ssh root@192.168.1.1 (“ssh» — это команда, root это пользователь OpenWrt, к которому вы подключаетесь, а 192.168.1.1 это светодиод по умолчанию OpenWrt)
появится сообщение о принятии нового ключа от устройства OpenWrt, напишите “yes” и нажмите клавишу “Ввод”.
Если по какой-то причине вы переустановили OpenWrt, у устройства будет другой ключ, и вы получите сообщение о несоответствии ключей. В этой ошибке будет указано, что является командной строкой для копирования-вставки в вашем терминале, чтобы удалить старый ключ и продолжить.
Обычно у Linux также есть клиенты SCP (для открытия/редактирования/загрузки/выгрузки файлов в OpenWrt), которые могут быть установлены или не установлены по умолчанию. Вам нужно найти документацию вашего дистрибутива или выполнить поиск с помощью интерфейса управления пакетами для “SCP”, чтобы найти, где он находится, и его текущий статус установки. Прочтите его встроенное руководство (“man scp”, например, для клиента командной строки SCP) или google некоторые учебные пособия, чтобы узнать, как его использовать.
macOS Terminal Emulators
На macOS (ранее Mac OSX) любой эмулятор терминала позволит вам ssh. Там несколько терминальных эмуляторов:
iTerm2 https://iterm2.com/ значительно улучшенная терминальная программа. Пожертвования — это того стоит.
Чтобы подключиь ssh в вашем маршрутизаторе OpenWrt на 192.168.1.1, введите ssh root@192.168.1.1 , и нажмите Return.
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website. OK More information about cookies
Self-registration in the wiki has been disabled.
If you want to contribute to the OpenWrt wiki, please post HERE in the forum or ask on IRC for access.
Except where otherwise noted, content on this wiki is licensed under the following license:
CC Attribution-Share Alike 4.0 International
SSH Server
RouterOS has built in SSH server that is enabled by default and is listening for incoming connections on port TCP/22. It is possible to change the port and disable the server under Services menu.
Properties
Sub-menu: /ip ssh
- no — SSH forwarding is disabled;
- local — Allow SSH clients to originate connections from the server(router), this setting controls also dynamic forwarding;
- remote — Allow SSH clients to listen on the server(router) and forward incoming connections;
- both — Allow both local and remote forwarding methods.
- prefer 256 and 192 bit encryption instead of 128 bits;
- disable null encryption;
- prefer sha256 for hashing instead of sha1;
- disable md5;
- use 2048bit prime for Diffie Hellman exchange instead of 1024bit.
- key-file-prefix — used prefix for generated files, for example, prefix ‘my’ will generate files ‘my_rsa’, ‘my_rsa.pub’ etc.
- private-key-file — name of the private RSA/Ed25519 key file
Enabling PKI authentication
Example of importing public key for user admin
Generate SSH keys on the client device (the device you will connect from). Upload the public SSH key to the router and import it.
/user ssh-keys import public-key-file=id_rsa.pub user=admin
SSH Client
Sub-menu: /system ssh
Simple log-in to remote host
It is able to connect to remote host and initiate ssh session. IP address supports both IPv4 and IPv6.
/system ssh 192.168.88.1 /system ssh 2001:db8:add:1337::beef
In this case user name provided to remote host is one that has logged into the router. If other value is required, then user= has to be used.
/system ssh 192.168.88.1 user=lala /system ssh 2001:db8:add:1337::beef user=lala
Log-in from certain IP address of the router
For testing or security reasons it may be required to log-in to other host using certain source address of the connection. In this case src-address= argument has to be used. Note that IP address in this case supports both, IPv4 and IPv6.
/system ssh 192.168.88.1 src-address=192.168.89.2 /system ssh 2001:db8:add:1337::beef src-address=2001:db8:bad:1000::2
in this case, ssh client will try to bind to address specified and then initiate ssh connection to remote host.
Log-in using RSA public/private key
Example of importing private key for user admin
First of all, export currently generated SSH keys to a file:
/ip ssh export-host-key key-file-prefix=admin
Two files admin_rsa and admin_rsa.pub will be generated. The pub file needs to be trusted on the SSH server side (how to enable SSH PKI on RouterOS) The private key has to be added for the particular user.
/user ssh-keys private import user=admin private-key-file=admin_rsa
Only user with full rights on the router can change ‘user’ attribute value under /user ssh-keys private
After the public key is installed and trusted on the SSH server, a PKI SSH session can be created.
Executing remote commands
To execute remote command it has to be supplied at the end of log-in line
/system ssh 192.168.88.1 "/ip address print" /system ssh 192.168.88.1 command="/ip address print" /system ssh 2001:db8:add:1337::beef "/ip address print" /system ssh 2001:db8:add:1337::beef command="/ip address print"
If the server does not support pseudo-tty (ssh -T or ssh host command), like mikrotik ssh server, then it is not possible to send multiline commands via SSH
For example, sending command «/ip address \n add address=1.1.1.1/24» to MikroTik router will fail.
If you wish to execute remote commands via scripts or scheduler, use command ssh-exec.
SSH exec
Sub-menu: /system ssh-exec
Command ssh-exec is a non-interactive ssh command, thus allowing to execute commands remotely on a device via scripts and scheduler.
Retrieve information
The command will return two values:
- exit-code: returns 0 if the command execution succeeded
- output: returns the output of remotely executed command
Example: Code below will retrieve interface status of ether1 from device 10.10.10.1 and output the result to «Log»
:local Status ([/system ssh-exec address=10.10.10.1 user=remote command=":put ([/interface ethernet monitor [find where name=ether1] once as-value]->\"status\")" as-value]->"output") :log info $Status
For security reasons, plain text password input is not allowed. To ensure safe execution of the command remotely, use SSH PKI authentication for users on both sides.
the user group and script policy executing the command requires test permission