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