Не интерактивно SSH к серверу, но интерактивно - PullRequest
0 голосов
/ 03 ноября 2011

Я понимаю все риски безопасности, используя ssh таким образом, но сейчас мне нужен сценарий оболочки в несколько строк (bash), способный войти на сервер target и просто выполнить команду foo и получитьобратно к исходному хосту, что-то вроде:

while true
do
   ssh target foo   # Here I get the prompt for a password which
                    # I would like to give non-interactively
   sleep 1
done

I не хочу использовать аутентификацию на основе ключа ssh, потому что мне действительно нужно симулировать раз в секунду (или около того)интерактивный процесс входа в систему (но не в интерактивном режиме!).

Ответы [ 3 ]

2 голосов
/ 03 ноября 2011

Вам нужно будет написать это с помощью expect, например, perl .

Редактировать: Вы также можете попробовать написать сценарий expectнепосредственно в bash .

0 голосов
/ 03 ноября 2011

sshpass предназначен для предоставления пароля для ssh программно, а не в интерактивном режиме. Таким образом, вы можете заменить ssh target foo, например, sshpass -f passwordfile ssh target foo.

0 голосов
/ 03 ноября 2011

Вы должны отредактировать сервер SSH, чтобы разрешить вход в систему только на основе ключа, а не пароля.

Попытайтесь выяснить, может ли это помочь вам.

Конечно, если вы не можете редактировать конфигурацию сервера, вам нужно проверить другие решения

...