удаленный sudo для получения root-прав с использованием открытого текста, а затем выполнения команд

ввод кота | grep ".=" > вывод

или ввод

cat | grep "errno" > вывод

, и вы получите:

02:57:25 BROKER  : Unable to open errno =. (1295)  

, но вы должны быть уверены, что все эти типы строк имеют эти уникальные идентификаторы (т.е. ни одна из других строк не имеет этих слов/символов):
"ошибка" или "=".

0
20.07.2017, 23:20
2 ответа

Попробуйте использовать программу sshpass для передачи пароля ssh. Его можно использовать так:

SSHPASS='sshpassword'
remoterootpass='remoterootpass'

sshpass -e ssh user@host <'EOF'
su -
echo "$remoterootpass"
service snmpd stop
reboot
EOF

Вы также можете поместить свои удаленные команды в сценарий оболочки и вызвать его следующим образом:

SSHPASS='sshpassword'
cat myscript.sh | sshpass -e ssh user@host
1
28.01.2020, 02:25

Примечание.:Приведенный здесь ответ должен работать. Однако нарушает лучшие практики. Этот ответ также предполагает, что sshpassдоступен на хосте, где будет инициирована команда. Пользователь отметил, что он будет использоваться один раз, а затем удален.

sshpass -pPASSWORD ssh -tt [username]@[host] 'echo PASSWORD | sudo -S -s /bin/bash -c "service snmpd stop; reboot"'

По крайней мере, пользователь должен использовать обмен ключами для входа по ssh и разрешить выполнение нужных команд через sudo без пароля.

4
28.01.2020, 02:25

Теги

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