Добрый вечер! Начну с того, что автоматизировал генерацию ключа такой командой:
ssh-keygen -t rsa -f /home/paa/.ssh/id_rsa -q -P ""
Есть необходимость автоматизировать копирование ключа, чтобы выглядело примерно так:
ssh-copy-id -p мой_пароль 'host'
Ничего подобного не нашёл, пытаюсь сделать через скрипт. Ввёл в терминал команду sh-copy-id 'host', записал, какие вопросы задаются и какие ответы я делаю и получилось следующее:
#!/usr/bin/expect -f
set timeout 2
spawn ssh-copy-id '192.168.56.103'
expect "Are you sure you want to continue connecting " {send "yes\n"}
expect "paa@192.168.56.103's password:" {send "2\n"}
expect eof
Пытаюсь запустить это скрипт, система выдаёт сообщение:
spawn ssh-copy-id '192.168.56.103'
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/paa/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: ERROR: ssh: Could not resolve hostname '192.168.56.103': Name or service not known
expect: spawn id exp4 not open
while executing
"expect "paa@192.168.56.103's password:" {send "2\n"}"
(file "/etc/ansible/ssh_copy_id" line 5)
Почему одна и та же команда проходит, если ввести вручную, а через скрипт нет? Может, есть иной способ автоматизации этой команды?