Я пытаюсь создать скрипт, который автоматически вводит пароль «root» для копирования ssh-ключа из A в B. Поскольку ssh-copy не работает на B, а также не может быть установлен, я использовал:
ssh root@$ip mkdir -p .ssh
cat "~/.ssh/id_rsa.pub" | ssh "root@$ip" 'cat >> .ssh/authorized_keys'
Для передачи ключа. Но B удаляет свое хранилище при перезагрузке. Поэтому я должен автоматизировать этот процесс. Я думал, что сценарий ожидания будет самым простым решением? Однако я не очень опытен в этом.
#!/usr/bin/expect
#31.09.2015
set timeout 30
spawn ssh "root@$ip mkdir -p .ssh"
expect "password:"
send "root\r"
expect "(yes/no)? "
send "yes\r"
spawn cat "~/.ssh/id_rsa.pub" | ssh "root@$ip" 'cat >> .ssh/authorized_keys'
expect "password:"
send "root\r"
interact
Вроде работает до первой отправки. Однако потом застревает и ждет входа? (неправильно ожидать?)