Использование паролей в сценариях не рекомендуется. Вместо этого вы можете использовать ключи ssh, чтобы разрешить вход без пароля.
На машине, на которой запущен скрипт, запустите ssh-keygen
, чтобы сгенерировать ключевой файл. Вы можете нажать Enter для всех вопросов, настройки по умолчанию будут работать нормально. Получив ключевой файл, вы можете скопировать его на другой сервер с помощью ssh-copy-id other.server
. Это установит файл правильно, чтобы вы могли войти в систему. ssh-copy-id
запросит пароль. Если вы сейчас попытаетесь ssh
или scp
подключиться к другому серверу, пароль больше не потребуется.
Если вы по-прежнему считаете, что установка пароля в сценарии — единственный вариант (а это не так, и вы не должны), вы можете написать сценарий ожидания
для ввода пароля, когда ssh
или scp
.
Простота тестирования:
sleep
умрет, если получит SIGUSR1:
$ sleep 999 &
[1] 7399
$ kill -USR1 7399
$
[1]+ User defined signal 1 sleep 999
Итак, давайте отречемся от него и посмотрим, выживет ли он:
$ sleep 999 &
[1] 7396
$ disown %1
$ jobs
$ ps -fp 7396
UID PID PPID C STIME TTY TIME CMD
schaller 7396 7360 0 19:59 pts/0 00:00:00 sleep 999
$ kill -USR1 7396
$ ps -fp 7396
UID PID PPID C STIME TTY TIME CMD
$