Выполнить сценарий оболочки на другом компьютере с Unix, используя SSH

Я пытаюсь выполнить скрипт, который присутствует на другом компьютере с Unix из моего окна Unix, используя следующую команду:

HOST=myhostname
USER=myuser

ssh -o StrictHostKeyChecking=no -l $USER $HOST "/tmp/myscript.sh"

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

Пожалуйста, помогите мне, как отправить пароль как часть команды, а не команду для его запроса. Я использую скрипт оболочки BASH.

1 ответ

Используйте EXPECT

Сохраните это как mylogin.exp (или другое имя, которое вам нравится) и измените имена и пароль:

#!/usr/bin/expect -f
spawn ssh myname@some_server.com
expect {
   password:   {send "mypassword\n"}
}
interact

Затем просто запустите команду:

./mylogin.exp

После этого вы войдете в систему. Если вы хотите вместо этого запустить команду, вы можете просто поставить ее в конце команды ssh.

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