首先需要生成密钥,在命令行输入:
ssh-keygen
然后一路enter完成密钥创建.
接下来开始编写自动复制密钥脚本:
#!/usr/bin/expect
#使用expect作为解释器,所以以下的语法需要使用tcl
#创建复制密钥的函数,自动完成交互.
#假设需要复制的主机ip为xx.xxx.xx.120到xx.xxx.xx.200
proc keycopy {a} {
spawn ssh-copy-id -i xx.xxx.xx.$a
expect {
"(yes/no)"
{send "yes\r";exp_continue}
"*password"
{send "111111\r"}
}
interact
}
#通过for循环调用上面创建的函数,完成批量密钥的写入
for {set b 120} { $b < 201} {incr b} {
keycopy $b
}
使用之前需要安装expect,可通过输入:
expect -version
查看expect版本。
编辑完成之后保存.到命令行输入:
chmod +x $filename
添加文件可执行权限.
在命令行输入:
expect $filename
执行文件.