使用expect来自动生成ssh密钥对

时间:2012-09-20 12:27:38

标签: bash automation expect

我想自动执行命令ssh-keygen -t rsa。唯一的特点是命令会在不同条件下打印出不同的文本。例如,如果是第一次,则会输出enter passphraseenter passphrase again。否则,它将以Overwrite (y/n):提示。如何在expect

中处理此问题

我尝试过使用模式操作对,比如

  

期望“输入密码短语”{send“\ r”} \

   "Overwrite (y/n): " {send "n\r"}

但是,它一次只处理一个提示;如何处理提示enter passphrase again

1 个答案:

答案 0 :(得分:1)

使用exp_continue可以帮助您:

expect {
    "Overwrite (y/n)?" { send "n\r" ; exp_coninue }
    "Enter passphrase" { send "\r" ; exp_coninue }
    "passphrase again:" { send "\r" }
}