gpt4 book ai didi

linux - expect:使用 expect 脚本生成 RSA key 不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:04 24 4
gpt4 key购买 nike

我正在尝试使用 expect 脚本使用 ssh-keygen 命令生成 SSH key ,但它似乎无法正常工作(如果 key 已经存在,则无法创建新 key 或覆盖)我无法找出问题所在在此。

 #!/usr/bin/expect
spawn ssh-keygen
expect { -re "Enter file in which to save the key.*:\s?" {send "\n\r"; exp_continue}
-re "Overwrite.*\?\s?" {send "y\r"; exp_continue}
-re "Enter passphrase.*:\s?" {send "\n\r"; exp_continue}
-re ".*#\s?" { puts "matched propmt"}
}

脚本执行的输出:

./ssh-key-gen.sh
spawn ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [root@localhost scripts]#

最佳答案

问题是 发送“\n\r” 以响应“输入要保存 key 的文件”。\n 接受默认文件名,然后\r 应用于“覆盖(y/n)?”迅速的。对该问题的空回答被解释为“否”,因此命令终止。去掉那个\n 就可以了。

但是这样做不是更容易吗:

set file [file normalize ~/.ssh/id_rsa]
file delete $file
exec ssh-keygen -f $file -N {}

这可以在普通的 Tcl 中完成,不需要 expect。

关于linux - expect:使用 expect 脚本生成 RSA key 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54401711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com