shell一键生成密钥脚本

shell一键生成密钥脚本

全局声明:以下脚本使用参数路径都来自系统默认,如有需要请自行更改。

初步脚本实例:

ssh-keygen -t rsa -N '' <<EOF
/root/.ssh/id_rsa
yes


EOF
}

参数解析:-t 表示指定生成密钥类型,-N表示指定密码’'表示密码为空。

交互内容解析:/root/.ssh/id_rsa指定生成密钥存放路径(这里可以自由修改存放路径),没有该文件会自动创建。关于yes的用法,经过测试该处填入yes或y都可,但根据其他交互写法作者这里更倾向于填写yes(这里不为硬性要求,读者可自由选择)。

优化

以上脚本内容过于简单,仅仅用于新机器首次生成密钥,当重复执行或不小心执行该脚本时会导致主机密钥更改,当这台主机被当成运维机器时,相信大家不会想为所有机器重刷一次密钥吧。
这里对脚本进行进一步的对优化

function inssh(){
yum install ssh -y
#以下是判断存放密钥文件路径中文件id_rsa文件是否存在
if [ `ls -al /root/.ssh/ |grep id_rsa|wc -l` -eq 0 ]; then
ssh-keygen -t rsa -N '' <<EOF
/root/.ssh/id_rsa
yes


EOF
else
echo -e "检测出/root/.ssh/中已存在id_rsa文件"
fi
if [ $? -eq 0 ]
then
echo -e "生成密钥成功"
else
echo -e "Error"
fi
#将存放密钥的目录权限进行修改,防止其他非root更改,这里不需要该要求请注释
chmod 700 /root/.ssh
}
inssh

注意:以上脚本实施需要对运维人员对文件存放路径规范有一定的要求,存放路径不同可自行修改脚本

思路:首先判断机器是否下载ssh,后续判断机器存放密钥目录中是否存在密钥文件,当未检测到密钥文件时,自动生成密钥,当检测到密钥文件时直接返回已存在…,最后修改存放密钥目录权限,最后将该脚本使用函数封装,需要时调用,增加脚本可移植性。

命令方法

使用一条命令生成密钥

ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa

参数解析:-t 表示指定生成密钥类型,-N ‘’ 表示指定密码为空,-f 表示指定存放密钥文件路径,没有改文件会自动创建。

缺陷:当已存在密钥文件时,会提示是否覆盖,不能达到一键目的,需要配合其他命令一起使用
展示:
在这里插入图片描述

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值