千家信息网

expect一键实现集群ssh免密登入

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,expect具有非交互式功能yum -y install expectmkpasswd -l 20 #<==生成随机字符串,-l参数指定生成字符串的长度非交互密钥分发添加用户(所有机器)useradd
千家信息网最后更新 2026年11月02日expect一键实现集群ssh免密登入

expect具有非交互式功能

yum -y install expect

mkpasswd -l 20 #<==生成随机字符串,-l参数指定生成字符串的长度


非交互密钥分发

添加用户(所有机器)

useradd jiege1

echo 123456|passwd --stdin jiege1

id jiege1


10创建密钥对

su - jiege1

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa>/dev/null 2>&1


10一键分发公钥expect脚本没指定主机

vim fenfa_sshkey.exp

#!/usr/bin/expect

if { $argc != 2 } {

send_user"usage:expect fenfa_sshkey.exp file host\n"

exit

}

#define var

set file [lindex $argv 0]

set host [lindex $argv 1]

set password "123456"

#spawn scp /etc/hosts root@10.0.0.142:/etc/hosts

#spawn scp -P6666 $file jiege1@$host:$dir

spawn ssh-copy-id -i $file "-p6666 jiege1@$host"

expect {

"yes/no" {send "yes\r";exp_continue}

"*password" {send "$password\r"}

}

expect eof

exit -onexit {

send_user"jiege say good bye to you!\n"

}


expect fenfa_sshkey.exp .ssh/id_dsa.pub 192.168.169.11

#需手动输入公钥和ip,但是不用手动输yes和密码了(expect非交互式功能)可以把fenfa_sshkey.exp写入脚本一键实现集群通过主服务器ssh免密登入


批量写入多台主机

vim fenfa_sshkey.sh

#!/bin/sh

. /etc/init.d/functions

for ip in 11 12 13 14 15

do

expect fenfa_sshkey.exp ~/.ssh/id_dsa.pub 192.168.169.$ip >/dev/null 2>&1

if [ $? -eq 0 ];then

action "$ip" /bin/true

else

action "$ip" /bin/false

fi

done


注意此脚本要和fenfa_sshkey.exp一个目录

脚本 一键 主机 交互式 公钥 功能 字符 字符串 密钥 手动 生成 集群 不用 参数 多台 密码 服务器 机器 用户 目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 科技互联网龙头 互联网属科技 智能科技公司是互联网公司吗 互联网科技卖菜 紫鲸互联网科技 太原新华互联网科技学校怎么样 深圳互联网科技怎么样 互联网 科技馆 开启互联网科技时代小说 汽车互联网创新科技园 西安小鹰速贷互联网科技有限公司 特约风豹互联网科技为什么扣费 长沙互联网科技 沐思想互联网科技有限公司 梅州GM互联网络科技有限公司 易企秀互联网科技是做什么的 银川新华互联网科技学校是国营吗 互联网科技和医药行业 亚光科技低轨卫星互联网 上海互联网科技有限公司 互联网金融公司科技 致骋互联网科技 电子科技大学互联网 互联网之后的科技是什么 元气玛特互联网科技公司是外包吗 山东星卡互联网科技有限公司官网 唐山双旺合互联网科技产业园 互联网科技和医药行业 现代互联网科技公司
0