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

У меня есть сценарий удара, который принимает точно 3 аргумента, и я создал веб-интерфейс в PHP для запущения этого скрипта на удаленном сервере. Пользователь просто вводит хост имени пользователя и пароль удаленного сервера.

Я нашел, что эта команда выполнила сценарий удара на удаленном сервере:

ssh root@host 'bash -s' < script.sh

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

Что-то как:

ssh root@host -password="password" 'bash -s' < script.sh
6
задан 16 September 2018 в 11:33

1 ответ


Удостоверьтесь, что Вы считали соображения безопасности


Установка sshpass это - инструмент для неинтерактивной ssh аутентификации по паролю.

sudo apt install sshpass

Можно использовать его как:

sshpass -p 'password' ssh user@server/IP

Затем используйте его как это для запущения скрипта с его аргументами:

sshpass -p 'password' ssh user@server "bash -s" < ./script.sh arg1 arg2

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

sshpass -p 'password' scp script.sh user@server:/tmp/script.sh
sshpass -p 'password' ssh user@server /tmp/script.sh arg1 ar2 arg3
sshpass -p 'password' ssh user@server rm /tmp/script.sh

Соображения безопасности [человек sshpass]

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

-p возможность должна быть рассмотрена наименее безопасная изо всех опций sshpass. Все пользователи системы видят пароль в командной строке с простой командой "PS". Sshpass предпринимает минимальную попытку скрыть пароль, но такие попытки обречены создать условия состязания, на самом деле не решая проблему. Пользователи sshpass поощряются использовать один из другого пароля передающие методы, которые все более безопасны.

В частности, люди программы записи, которые предназначены для передачи пароля программно, поощряются использовать неименованный канал и передать конец чтения канала sshpass использование-d опции.

6
ответ дан 23 November 2019 в 07:47

Другие вопросы по тегам:

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