Автоматический ввод пароля ssh с терминала Busybox

Он должен работать, если вы укажете shebang в скрипте groovyrun .

В качестве быстрого эксперимента создайте shell1 , содержащий

#!/bin/sh
echo shell1: "$@"
sh "$@"

и shell2 , содержащий

#!/.../shell1
echo shell2: "$@"

(с правильным путем к shell1 ); запуск shell2 Hello затем производит

shell1: ./shell2 Hello
shell2: Hello

Как видите, параметры, переданные каждому скрипту, выглядят правильно в обоих случаях.

1
28.09.2015, 02:25
2 ответа

Необходимо использовать expect (или аналогичный, например, Expect. pm, или даже модуль Net::SSH от perl... или модуль python pexpect, если вы предпочитаете python) на вашем сервере Ubuntu для:

  • подключения к системе busybox, либо с паролем, либо с ключом
  • когда появится приглашение shell, выполните команду ssh для доступа к модему
  • когда появится приглашение password, отправьте пароль
  • выполните все необходимые команды для модема
  • выйдите из модема, а затем из сервера busybox
0
29.04.2021, 00:23

Если у вас есть ключ для аутентификации в промежуточной системе BusyBox и вам нужен пароль для конечной системы, просто вызовите sshpass на исходной системе Ubuntu, и вызовите ssh -t для достижения системы BusyBox, чтобы был терминал для внутренней команды ssh, чтобы прочитать ее пароль.

sshpass -p modempassword ssh -t busybox@xx.xx.xx.xx ssh modem@xx.xx.xx.xx

Если вам также нужен пароль для системы BusyBox, вам придется дважды вызвать sshpass.

sshpass -p busyboxpassword sshpass -p modempassword ssh -t busybox@xx.xx.xx.xx ssh modem@xx.xx.xx.xx

Если по какой-то причине у вас возникли проблемы с настройкой соединения, вы можете сделать это в два шага:

  1. Откройте мастер-соединение к системе BusyBox. Это требует поддержки только на клиенте, на сервере нет ничего особенного.

    sshpass -p busyboxpassword ssh -o ControlMaster=auto -f busybox@xx.xx.xx.x sleep 99999999999
    
  2. Используйте подчиненное соединение с системой BusyBox, чтобы открыть соединение с модемом.

    sshpass -p modempassword ssh -o ControlMaster=auto -t busybox@xx.xx.xx.xx ssh modem@xx.xx.xx.xx
    
  3. Когда вы закончите, закройте соединение с мастером с помощью

    ssh -O exit busybox@xx.xx.xx.xx
    
0
29.04.2021, 00:23

Теги

Похожие вопросы