使用expect实现ssh免密码登陆

使用expect向ip列表文件中的ip主机,执行ssh-copy-id命令复制密钥,以实现ssh免密登陆。

安装expect

yum install -y expect

生成密钥对

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

脚本

//shell脚本内容
# -------------------------
vim ssh-copy-id.sh

#!/bin/bash
#
[ $# -gt 0 -a -f "$1" ] || exit 1

cat $1 | while read ip ;do
    user='root'
    password='centos'

    expect ./ssh-copy-id.exp $ip $user $password
done




//expect脚本内容
-------------------------
vim ssh-copy-id.exp

#!/usr/bin/expect
set ip [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
set timeout 10
spawn ssh-copy-id $user@$ip
expect {
    "yes/no" { send "yes\n";exp_continue }
    "password" { send "$password\n" }
}
expect eof



//iplists文件
-------------------------
vim iplists.txt

192.168.10.101
192.168.10.102
192.168.10.103
192.168.10.104
192.168.10.105



//调用脚本
sh ssh-copy-id.sh iplists.txt

转载于:https://www.cnblogs.com/haona_li/p/10182703.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值