Выполнить сценарий оболочки на другом компьютере с 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.