#!/usr/bin/expect if {$argc != 2} { #首先注意大话号,彼此之间需要空格 send_user "USAGE:expect_sshkey.exp file host" exit } #define var set file [lindex $argv 0] set host [lindex $argv 1] set password "12345" #spawn spawn ssh-copy-id -i $file "-p52113 jpinsz@$host" >/dev/null 2>&1 #expect expect { #也是要注意大话号,与首单词之间需要空格 "yes/no" {send "yes\r";exp_continue} "*password" {send "$password\r";send_user "eof/n"} } expect eof 根据这个脚本,当目标主机已经存在sshkey时,将不会提示“yes/no”、“*password”,因此也不会有eof,所以会有 spawn id exp4 not open这个报错!!
使用expect 批量分发ssh公钥
原创
©著作权归作者所有:来自51CTO博客作者JPinsz的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
expect批量分发
expect脚本
expect 批量分发 -
Shell 脚本实现ansible免密认证 expect批量导入ssh公钥
作为一个运维工程师,不是每个人工作的环境都想阿里、腾讯那样,动不动就上
shell ansible unix 服务器 批量导入 -
libssh 使用 公钥登录ssh ssh 公钥认证
前面介绍cygwin下安装sshd时简单地提到了ssh的公钥认证。下面将这种认证方式详细地解释一下。 * 为什么要使用公钥认证 * 公钥认证的原理 * 服务器端设置 * 客户端设置 &n
libssh 使用 公钥登录ssh 运维 操作系统 客户端 服务器