Что я хотел сделать: запустить скрипт bash из моего локального терминала, чтобы запустить файл jar в экземпляре EC2. Но чтобы запустить скрипт, мне сначала нужно войти в систему с учетными данными .pem, а затем выполнить su admin и ввести пароль администратора, чтобы получить доступ к запуску. Команда, которую я понял до сих пор, выглядит так:

ssh -i ~/.ssh/my_credentials.pem -t ${EC2IP} 'su admin' "ADMIN_PASSWORD" 'cd /tmp' 'java -jar my-program.jar'

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

Как я могу достичь этого, пожалуйста? Большое спасибо!

2 ответа2

0

нет правильного решения вашей проблемы. Может быть, вы можете изменить некоторые правила безопасности в /etc/pam.d/su . Но я не уверен, если и как.

Я знаю, почему вы не можете использовать ssh в сочетании с su ...
su предназначен для работы на серверном терминале или другими словами:
su нужен правильный TTY для общения.


Передача пароля su также не работает.
Большинство программ, использующих пароль, имеют возможность поместить в него пароль,
К сожалению, su использовать только Promt.

НЕ рекомендуемый метод будет следующим.


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

Надеюсь, это поможет вам.

0

A. Не делай этого. Вместо этого используйте sudo. Вам, вероятно, нужно закомментировать следующую строку из /etc /sudoers на цели:

Defaults    requiretty

B. Предполагая, что вы все равно это сделаете, используйте для этого ожидаемую функцию: http://www.tcl.tk/man/expect5.31/expect.1.html

Но, если серьезно, не делай этого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .