Используйте подключение для аутентификации с открытым ключом, чтобы избежать сохранения/обслуживания паролей в бумажном виде. Скопируйте содержимое локального пользователя id_rsa.pub
в файл удаленных пользователей ~/.ssh/authorized_keys
, чтобы установить соединение для аутентификации с открытым ключом.
Если вы все еще хотите использовать пароль, то можно создать сценарий ожидания, подобный следующему, и изменить вторую строку сценария ожидания, чтобы она соответствовала вашим user
, server
и MY_PASSWORD
с вашим паролем:
spawn scp "user@abc.com:/usr/etc/Output/*.txt" /usr/abc/
expect "user@abc.com\'s password:"
send "MY_PASSWORD\r"
interact
Благодаря @pynexj в сообщении Ссылка на StackOverFlow Мне пришлось изменить скрипт следующим образом:
#!/usr/bin/expect -f
spawn scp /TEST1.txt root@1.2.3.4:/root/
expect "*assword:*"
send "password\r"
expect eof
spawn scp /TEST2.txt root@1.2.3.4:/root/
expect "*assword:*"
send "password\r"
expect eof
exit
Обратите внимание , что если у вас есть несколько файлов или шаблонов, которые необходимо передать, вы также можете рассмотреть возможность использования SFTP с пакетным режимом и ожидать.