1

Я знаю, что такие вопросы задавались ранее, и я прочитал их все (которые я нашел).

У меня проблема в том, что у нас есть встроенное устройство Linux, в которое мы можем войти для отладки, выполнив следующие действия:

ssh root@name

Тогда пароль - что угодно (я обычно просто нажимаю ввод). Я не хочу ничего менять на встроенном устройстве / Linux. Но я хочу быть в состоянии (как часть моего сценария) ssh в него.

Мои исследования показали, что можно использовать следующее (это скопировано из другого поста):

#!/usr/bin/expect -f
spawn ssh user@my.server.com
expect "assword:"
send "mypassword\r"
interact

Однако с моей версией Ubuntu (10.04) у меня нет команд spawn или send. Мне удалось установить команду "ожидается" с помощью команды sudo apt-get install Ожидается.

у кого-нибудь есть решение? Можно ли установить эти команды, или есть другой способ, чтобы ssh и пройти этап "пароль"?

Спасибо :)

------------- РЕДАКТИРОВАТЬ -----------------

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

#!/bin/bash

Затем позже я пытаюсь сделать:

spawn ssh user@my.server.com
expect "assword:"
send "mypassword\r"
interact

Я не понял, что вам нужно явно:

#!/usr/bin/expect -f

В начале сценария. поэтому мне пришлось перенести мой код в отдельный файл, который содержит только и точно:

#!/usr/bin/expect -f
spawn ssh user@my.server.com
expect "assword:"
send "mypassword\r"
interact

... извините за недопонимание с моей стороны, но ответы людей помогли мне понять, что я делаю. Это не совсем идеально для меня, так как я хотел передать параметры, чтобы открыть различные ssh-соединения, и я не могу передать параметры этому сценарию, начиная с «ожидаем -f» :(

1 ответ1

2

Я думаю, что вы пытаетесь запустить свой сценарий как сценарий оболочки. После установки expect , запустите ваш скрипт так:

expect -f scrip.exp

Если вы не можете установить ожидаемо как обычный пользователь, попробуйте установить его двоичные файлы в один из ваших каталогов в $HOME например, $HOME/opt/ и оттуда expect вызова, хотя это будет зависеть от вашей системы в том, как вы можете манипулировать LD_LIBRARY_PATH для добавить другой каталог для поиска динамических библиотек.

Пример встроенного ожидания:

#!/bin/bash

USER=$1
SERVER=$2
PASSWORD=$3

expect <<EOF
spawn ssh "${USER}@${SERVER}"
expect "assword:"
send "${PASSWORD}\r"
interact
EOF

Бежать с

bash script.sh user server password

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