Привет народ.
Есть скрипт, который по цыклу копирует файлы по scp с нескольких серверов, при это на каждый сервер нужно вводить пароль, притом, что они одинаковые. Я хочу считать ввод пароля с клавиатуры в переменную в начале скрипта, но как потом передать значение этой переменной при запросе пароля scp? Или кроме как использовать аутентификацию по ключам и ssh-agent альтернативы нет?
передача пароля на SCP параметром (в скрипте)
Модератор: Модераторы разделов
-
andro_id
- Сообщения: 146
- ОС: openSuSE 11 (XFCE 4.6.0)
-
Ariasp
- Сообщения: 254
- Статус: NixLander
Re: передача пароля на SCP параметром
expect-скрипт (или -> интерпретатор expect) является альтернативой
-
real_maverick
- Сообщения: 28
- ОС: CentOS
Re: передача пароля на SCP параметром
andro_id писал(а): ↑23.01.2009 18:10Привет народ.
Есть скрипт, который по цыклу копирует файлы по scp с нескольких серверов, при это на каждый сервер нужно вводить пароль, притом, что они одинаковые. Я хочу считать ввод пароля с клавиатуры в переменную в начале скрипта, но как потом передать значение этой переменной при запросе пароля scp? Или кроме как использовать аутентификацию по ключам и ssh-agent альтернативы нет?
сюда смотри: Передача команды по SSH
-
andro_id
- Сообщения: 146
- ОС: openSuSE 11 (XFCE 4.6.0)
Re: передача пароля на SCP параметром
спасибо за наводку, все решилось таким образом:
в bash-скрипте вызвал expect-скрипт с параметром, параметр - имя сервера, который перебирается по циклу из списка серверов.
в bash-скрипте вызвал expect-скрипт с параметром, параметр - имя сервера, который перебирается по циклу из списка серверов.
Код: Выделить всё
#!/bin/bash
./expect_script $bcp_serverКод: Выделить всё
#!/usr/bin/expect
set bcp_server [lrange $argv 0 0]
spawn scp root@$bcp_server:/var/log /root/log
expect "root@$bcp_server's password: " {send ssh_password\r}
expect eof