Jump to content
  • 0

Удаленное выполнение команд на интрент центре без авторизации


Michael_ich

Question

Доброго времени суток.

Имеется контейнер в docker под Linux (с ограниченным функционалом) из которого я бы хотел посылать команды на интернет центр keenetic ultra на включение и отключение интерфейсов (VPN).
Установить Telnet на этот контейнер нельзя. Зато есть SSH.
Собственно им я и воспользовался:
Сгенерил ключи в докер контейнере

bash-5.0# ssh-keygen


Скопировал ключи на желаемый host

ssh-copy-id -i /config/.ssh/id_rsa.pub pi@192.168.1.1


Тут меня постигла неудача.
Команда

bash-5.0# ssh -i /config/.ssh/id_rsa user@192.168.1.1 interface OpenVPN0 down

выполняется, но не автоматом. Интрнет центр не проводит авторизацию по ключу, и всё-равно просит пароль.

Подскажите, пожалуйста, как я могу управлять интерфейсами интрнет центра из командной строки docker конейнера без авторизации по паролю, если описанный метод авторизации по ключю не работает?

PS в контейнере есть curl

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

sshd сервер какой ? Прошивочный, entware, debian, gentoo и т.д. ?

В /etc/sshd_config раскомментирована строка:

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
AuthorizedKeysFile<--->.ssh/authorized_keys .ssh/authorized_keys2

На кинетике user создан ?

Если зайти на кинетик в /home/user/.ssh/authorized_keys лежит ?

 

Link to comment
Share on other sites

  • 0
17 minutes ago, laforsh said:

sshd сервер какой ? Прошивочный, entware, debian, gentoo и т.д. ?

В /etc/sshd_config раскомментирована строка:

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
AuthorizedKeysFile<--->.ssh/authorized_keys .ssh/authorized_keys2

На кинетике user создан ?

Если зайти на кинетик в /home/user/.ssh/authorized_keys лежит ?

 

Извиняюсь, не все вопросы понятны.
Речь идёт про Home Assistant в докер контейнере.

USER создан.


/home/user/.ssh/authorized_keys проверить не получается. Т.к. команды cd, ls - l и многие другие не выполняются

Строка В /etc/sshd_config на интрент центре? 

KeeneticOS version 3.05.C.2.0-1, copyright (c) 2010-2020 Keenetic Ltd.


THIS SOFTWARE IS A SUBJECT OF KEENETIC LIMITED END-USER LICENCE AGREEMENT. BY
USING IT YOU AGREE ON TERMS AND CONDITIONS HEREOF. FOR MORE INFORMATION PLEASE
CHECK https://keenetic.com/legal

(config)> cd
Command::Base error[7405600]: no such command: cd.
(config)> cat
(config)> ls -l
Command::Base error[7405602]: directory: argument parse error.
(config)> cat /etc/sshd_config
(config)>

 

Link to comment
Share on other sites

  • 0

Проверил на докер контейнере отпечаток ключа
ssh-keygen -lf /config/.ssh/id_rsa.pub
И сравнил с  show ssh fingerprint с интернет центра

Совпадений нет.

PS
sshpass пробовал. Он к сожалению отсутствует в данном контейнере как и телнет

Link to comment
Share on other sites

  • 0

 

22 часа назад, Michael_ich сказал:

есть docker под Linux (с ограниченным функционалом) из которого я бы хотел посылать команды на интернет центр keenetic ultra на включение и отключение интерфейсов

Теория у Вас немного хромает. sshd должен быть установлен на роутере (как рация - на бронепоезде). Почитайте до понимания статью https://help.ubuntu.ru/wiki/ssh

"Выполнение команд через ssh в entware/debian" и "выполнение команд через telnet в cli кинетика" - это две большие разницы. С sshd из прошивки вряд ли чем помогу, ибо не использую и не знаю его настроек. С sshd из entware или debian (как будет понимание что делаем и когда они будут установлены на роутер) - пишите, чем смогу. Постоянно пользуюсь такой схемой запуска команд на удаленных серверах.

Судя по фразе

22 часа назад, Michael_ich сказал:

Команда


bash-5.0# ssh -i /config/.ssh/id_rsa user@192.168.1.1 interface OpenVPN0 down

выполняется, но не автоматом. Интрнет центр не проводит авторизацию по ключу, и всё-равно просит пароль.

вы на полпути к цели. Ключ не скопировался (или не подхватился сервером), но какой-то sshd на вашем роутере все таки имеется. И, кстати, ваша команда "interface OpenVPN0 down" отрабатывает как нужно ?

Link to comment
Share on other sites

  • 0
9 minutes ago, laforsh said:

 

Теория у Вас немного хромает. sshd должен быть установлен на роутере (как рация - на бронепоезде). Почитайте до понимания статью https://help.ubuntu.ru/wiki/ssh

"Выполнение команд через ssh в entware/debian" и "выполнение команд через telnet в cli кинетика" - это две большие разницы. С sshd из прошивки вряд ли чем помогу, ибо не использую и не знаю его настроек. С sshd из entware или debian (как будет понимание что делаем и когда они будут установлены на роутер) - пишите, чем смогу. Постоянно пользуюсь такой схемой запуска команд на удаленных серверах.

Судя по фразе

вы на полпути к цели. Ключ не скопировался (или не подхватился сервером), но какой-то sshd на вашем роутере все таки имеется. И, кстати, ваша команда "interface OpenVPN0 down" отрабатывает как нужно ?

На интрент центре уже стоит entware по этой инструкции.

"interface OpenVPN0 down" отрабатывает как нужно в cli кинетика

В entware 

BusyBox v1.31.1 () built-in shell (ash)

~ # interface OpenVPN0 down
-sh: interface: not found
~ #

 

Link to comment
Share on other sites

  • 0
1 час назад, Michael_ich сказал:

На интрент центре уже стоит entware по этой инструкции.

ОК, какой ssh сервер стоит на роутере ? dropbear (который используется по умолчанию в инструкции по установке entware) или отдельно ставили openssh-server ? Если не знаете, то зайдите через putty по ssh на роутер и дайте сюда под спойлер выхлоп ls -l /etc  и ls -l /etc/ssh

 

Link to comment
Share on other sites

  • 0
4 minutes ago, laforsh said:

ОК, какой ssh сервер стоит на роутере ? dropbear (который используется по умолчанию в инструкции по установке entware) или отдельно ставили openssh-server ? Если не знаете, то зайдите через putty по ssh на роутер и дайте сюда под спойлер выхлоп ls -l /etc  и ls -l /etc/ssh

 

~ # ls -l /etc
lrwxrwxrwx    1 root     root             7 Oct 30 11:17 TZ -> /var/TZ
-rw-r--r--    1 root     root         37952 Oct 30 11:17 components.xml
-rw-r--r--    1 root     root           805 Oct 19 18:52 devices
lrwxrwxrwx    1 root     root            10 Oct 30 11:17 group -> /tmp/group
lrwxrwxrwx    1 root     root            18 Oct 30 11:17 host.conf -> /opt/etc/host.conf
lrwxrwxrwx    1 root     root            10 Oct 30 11:17 hosts -> /var/hosts
lrwxrwxrwx    1 root     root             7 Oct 30 11:17 localtime -> /var/TZ
-rw-r--r--    1 root     root          1061 Oct 30 11:17 modules.autoload
lrwxrwxrwx    1 root     root            12 Oct 30 11:17 mtab -> /proc/mounts
drwxr-xr-x    2 root     root           123 Oct 30 11:17 nginx
lrwxrwxrwx    1 root     root            22 Oct 30 11:17 nsswitch.conf -> /opt/etc/nsswitch.conf
lrwxrwxrwx    1 root     root            11 Oct 30 11:17 passwd -> /tmp/passwd
lrwxrwxrwx    1 root     root             8 Oct 30 11:17 ppp -> /var/ppp
lrwxrwxrwx    1 root     root            16 Oct 30 11:17 preinit -> /opt/etc/preinit
lrwxrwxrwx    1 root     root            16 Oct 30 11:17 profile -> /opt/etc/profile
-rw-r--r--    1 root     root          5552 Oct 19 18:52 protocols
lrwxrwxrwx    1 root     root            18 Oct 30 11:17 rc.common -> /opt/etc/rc.common
lrwxrwxrwx    1 root     root            16 Oct 30 11:17 resolv.conf -> /var/resolv.conf
-rw-r--r--    1 root     root         18105 Oct 19 18:52 services
lrwxrwxrwx    1 root     root            15 Oct 30 11:17 shells -> /opt/etc/shells
drwxr-xr-x    4 root     root            59 Oct 30 11:17 ssl
-rw-r--r--    1 root     root           211 Oct 19 19:31 strongswan.conf
drwxr-xr-x    3 root     root            29 Oct 30 11:17 strongswan.d
lrwxrwxrwx    1 root     root            21 Oct 30 11:17 uci-defaults -> /opt/etc/uci-defaults
drwxr-xr-x    2 root     root           222 Oct 30 11:17 wlan
~ # ls -l /etc/ssh
ls: /etc/ssh: No such file or directory

Отдельно ничего не ставил

Edited by Michael_ich
Link to comment
Share on other sites

  • 0

зайдите через putty по ssh на роутер и перенесите файл /root/.ssh/authorized_keys в /etc/dropbear/authorized_keys командой

mv /root/.ssh/authorized_keys /etc/dropbear

В принципе если ранее давали команду

ssh-copy-id -i /config/.ssh/id_rsa.pub pi@192.168.1.1

то /root/.ssh/authorized_keys уже там должен лежать

Link to comment
Share on other sites

  • 0

Хотя... Если его там нет, то зайти на на докер и дать команду копирования ключа на роутер:

ssh-copy-id -i ./config/.ssh/id_rsa.pub root@IP адрес роутера

Потом на роутере

mv /root/.ssh/authorized_keys /etc/dropbear

 

Edited by laforsh
Link to comment
Share on other sites

  • 0
On 10/30/2020 at 4:04 PM, laforsh said:

Хотя... Если его там нет, то зайти на на докер и дать команду копирования ключа на роутер:

ssh-copy-id -i ./config/.ssh/id_rsa.pub root@IP адрес роутера

Потом на роутере

mv /root/.ssh/authorized_keys /etc/dropbear

 

mv /opt/root/.ssh/authorized_keys /opt/etc/dropbear

Файил authorized_keys передвинулся. Я его вижу командой cat /opt/etc/dropbear/authorized_keys

Но

ssh -i /config/.ssh/id_rsa root@192.168.1.1 -p 222

все равно просит пароль

Edited by Michael_ich
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...