#!/bin/bash createLocalKey () { rm -rf ~/.ssh/id_rsa rm -rf ~/.ssh/id_rsa.pub /usr/bin/expect <<_oo_ spawn ssh-keygen -t rsa expect { "*.ssh/id_rsa*" { send "\r";exp_continue } "*no passphrase*" { send "\r";exp_continue } "*passphrase again*" { send "\r";exp_continue } "Overwrite*" { send "y\r";exp_continue } } expect eof _oo_ } copyToRemote () { hosts=(master slave1 slave2) password="root" for host in ${hosts[@]}; do /usr/bin/expect <<_oo_ spawn ssh-copy-id $host expect { "*connecting (yes/no)*" { send "yes\r";exp_continue } "*password*" { send "$password\r";exp_continue } } expect eof _oo_ done } createLocalKey copyToRemote