关于ssh密钥分发的简单脚本

1.生成密钥和分发公钥的两条命令

ssh-keygen -t rsa|dsa -P ‘‘
ssh-copy-id -i ~/.ssh/id_dsa.pub "-p2222 [email protected]"

2.使用expect的简单分发脚本,实现自动交互

###shell scripts powered by troy###
#!/bin/bash
##deliver pubkey##
dsa_pub_key="/home/troy/.ssh/id_dsa.pub"
[ ! -e $dsa_pub_key ]&&{
expect << EOF
set timeout -1
spawn ssh-keygen -t dsa -p ‘‘
expect "*save the key*"
send "\r"
expect eof;
EOF
}

for ip in $(awk ‘/^[^#]/{print $1}‘ all_client.txt)
do
port=$(grep "^${ip}" all_client.txt|awk ‘{print $2}‘)
expect << EOF
set timeout -1
spawn ssh-copy-id -i $dsa_pub_key "-p$port [email protected]$ip"
expect { 
"*yes/no*" {send "yes\r";exp_continue}
"*password*" {send "tobeno.1\r"}
}
expect eof;
EOF
done

3.分发的ip端口配置文件

cat all_client.txt 
#ip port
172.16.100.104 2222
172.16.100.128 2222

更多的用法,还在学习当中。。。
TBD!

时间: 2024-10-09 02:48:06

关于ssh密钥分发的简单脚本的相关文章

SSH密钥分发

1.环境准备 [[email protected] 7 ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected] 7 ~]# uname -r 3.10.0-327.el7.x86_64 [[email protected] 7 ~]# getenforce Disabled [[email protected] 7 ~]# systemctl status firewalld.serv

ssh密钥分发与ansible部署指南

当我们公司的服务器达到几十台或几百台或更高的时候,利用批量管理工具管理系统是我们要做的 常用的批量管理工具有ansible,stalstack. 那首先我们要实现管理机对所有服务器的免密钥登录---ssh-key #管理机生成密钥对 [[email protected] ~]# ssh-keygen -t dsa #-t指定加密的方式,默认为rsa #提示生成的密钥放在/root/.ssh/id_dsa#提示是否给生成的密钥再加密一次,回车即可#让你再确认一次,回车即可. [[email pro

SSH批量分发与管理

一.SSH服务介绍 SSH是Secure Shell Protocol的简写,由IETF网络工作小组制定:在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后再进行数据传输,确保了传递的数据安全. SSH是专为远程登录会话和其他网络服务提供的安全性协议.利用SSH协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境当中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件.如telnet等. SSH服务结构: SSH服务是由服务端软件OpenSS

ssh密钥分发之二:使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:

使用sshpass配合ssh-kopy-id编写脚本批量分发密钥: 首先sshpass是一个ssh连接时的免交互工具,首先要安装一下: yum install sshpass -y 接下来我们就可以使用sshpass工具了,一条命令形式分发ssh公钥: sshpass -p "ssh登录密码" ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no [email protected]123.56.221.190

ssh密钥的分发之一:ssh-copy-id

ssh密钥的分发 我们在使用客户端账号对主机记性管理的时候,可以分为以下两种情况: 1.第一种情况,直接使用root账号: 优点:使用root账号密钥分发简单,指令执行简单 缺点:不安全 2.第二种情况,使用普通用户账号: 优点:比较安全 缺点:配置比较复杂,命令执行的时候也比较复杂. 这里因为是测试环境,我们选择第一种情况,直接使用root账号来远程管理主机. ssh密钥的分发这里我们有多种方式: 1.第一种,直接使用ssh自带的密钥分发工具命令ssh-copy-id: ssh-copy-id

做ssh key分发实验中的一个简单问题

1.操作系统:CentOS6.6 2.任务:ssh key分发实验 3.操作过程如下: [[email protected] ~]$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/home/sky9890/.ssh/id_dsa): Created directory '/home/sky9890/.ssh'. Enter passphrase (em

ssh key分发

rsa与das区别: rsa:是一种加密算法,是由Ron Rivest.Adi Shamir和LeonardAdleman这三个名称的第一个字母连接起来. dsa:就是数字签名算法的英文全称的简写,即DigitalSignature Algorithm 测试环境: 机器               IP Cl1  a            192.168.2.30 Cl2  b            192.168.2.31 Cl3  c            192.168.2.32 密钥分发

(转)SSH批量分发管理&amp;非交互式expect

目录 1 SSH批量分发管理 1.1 测试环境 1.2 批量管理步骤 1.3 批量分发管理实例 1.3.1 利用sudo提权来实现没有权限的用户拷贝 1.3.2 利用sudo提权开发管理脚本 1.3.3 利用rsync来实现增量备份 1.4 SSH批量管理分发脚本实战 1.5 SSH批量管理总结 2 非交互式expect 2.1 非交互式生成密钥及实现批量管理 2.2 一键批量安装httpd服务 2.3 一键自动化50台规模集群网站 1 SSH批量分发管理 基于口令的,如何实现批量管理:expe

[转] SSH 密钥认证机制

使用 RSA 密钥对进行 SSH 登录验证 使用 RSA 密钥对验证 SSH 的优点是 1) 不用打密码 2) 比密码验证更安全:缺点是 1) 第一次配置的时候有点麻烦 2) 私钥需要小心保存.Anyway 用密钥验证比密码验证还是方便不少的.推荐所有用户使用密钥认证. 目录 生成密钥对 上传密钥 ~/.ssh 相关文件权限 Over~ 附:公钥加密原理 进一步阅读 1. 生成密钥对 OpenSSH 提供了ssh-keygen用于生成密钥对,不加任何参数调用即可: % ssh-keygen Ge