SSH公钥部署: 在限定范围内实现主机间无密码无交互登录

该文章介绍了一个使用SSH基于密钥对进行登陆的自动化脚本,包括生成密钥对,使用scp命令传输公钥,以及利用expect脚本来处理脚本交互问题。脚本还包含了通过ping检测网络可达性,以及在多个主机间自动部署的逻辑。
摘要由CSDN通过智能技术生成

原理如上图所示!

ssh基于秘钥登陆:需要在本地生成密钥对,然后把密钥对中的公钥上传至服务器,并与服务器中的公钥进行比较;

产生密钥对:ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa

scp(secure copy)命令上传文件:scp file-name username@host:/path

expect脚本:

send 向进程发送字符串

expect 接收进程中返回的信息, 如果匹配成功(有大小写区分), 就执行expect后的动作

spawn 启动新的进程,执行命令或者指定程序

expect eof 不允许用户交互,直接退出(这个用的会比interact多)

exp_continue 执行完expect后的动作后,使expect不退出,继续往下匹配

涉及知识点:1.ssh服务基于秘钥登陆  2.shell脚本(for循环)3.expect处理脚本交互问题

脚本如下:

#!/bin/bash 
##判断主机是否产生秘钥对,避免再次执行命令产生交互导致脚本无法向前进行
if      [ !  -f ~/.ssh/id_rsa ];then
        ssh-keyge
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值