shell脚本实现ssh-copy-id批量自动发送公钥到远程主机

 更新时间:2019年11月08日 08:45:05   作者:何小帅  
这篇文章主要介绍了shell脚本实现ssh-copy-id批量自动发送公钥到远程主机的方式,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

需求

批量实现自动发送公钥到远程主机

环境

firewalld:关闭
selinux:关闭

实现方式

  • sshpass命令
  • shell调用expect命令

sshpass命令

#!/bin/bash
#
#********************************************************************
#Author:      hechunping
#QQ:        ×××
#Date:       2019-11-07
#FileName:     ssh-sshpass.sh
#URL:        hexiaoshuai.blog.51cto.com
#Description:    The test script
#Copyright (C):   2019 All rights reserved
#********************************************************************
NET=172.20.200
USER=(root hechunping)
PASSWORD=123456
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &> /dev/null
sed -i '/StrictHostKeyChecking/c StrictHostKeyChecking no' /etc/ssh/ssh_config
rpm -q sshpass &> /dev/null || yum -y install sshpass &> /dev/null
for i in {1..254} ; do
{
  sshpass -p $PASSWORD ssh-copy-id -i ${USER[0]}@${NET}.${i} &> /dev/null
}&
done
wait

shell调用expect命令

#!/bin/bash
#
#********************************************************************
#Author:      hechunping
#QQ:        ×××
#Date:       2019-11-07
#FileName:     ssh-expect.sh
#URL:        hexiaoshuai.blog.51cto.com
#Description:    The test script
#Copyright (C):   2019 All rights reserved
#********************************************************************
NET=172.20.200
USER=(root hechunping)
PASSWORD=123456
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &> /dev/null
for i in {1..254} ; do
{
expect <<EOF
spawn ssh-copy-id -i ${USER[0]}@${NET}.${i}
expect {
  "yes/no" { send "yes\n";exp_continue }
  "password" { send "${PASSWORD}\n" }
}
expect eof
EOF
}&
done
wait

总结

以上所述是小编给大家介绍的shell脚本实现ssh-copy-id批量自动发送公钥到远程主机,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • shell监控脚本 准备工作分享

    shell监控脚本 准备工作分享

    这篇文章主要介绍了在编写监控功能脚本需要做的一些工作,需要的朋友可以参考下
    2013-11-11
  • Shell 字符串拼接的实现示例

    Shell 字符串拼接的实现示例

    这篇文章主要介绍了Shell 字符串拼接的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 浅析Linux中重定向问题

    浅析Linux中重定向问题

    这篇文章主要介绍了浅析Linux中重定向问题,需要的朋友可以参考下
    2017-08-08
  • linux shell中的比较符号与特殊符号介绍

    linux shell中的比较符号与特殊符号介绍

    本文为大家介绍linux shell中的特殊符号,包括字符串比较、数字比较与计算、特殊字符等,学习shell的朋友可以看下
    2013-06-06
  • Linux网络设置详情

    Linux网络设置详情

    这篇文章主要介绍了Linux网络设置,需要的朋友可以参考下面文章内容
    2021-08-08
  • shell脚本怎样判断文件是否存在

    shell脚本怎样判断文件是否存在

    这篇文章主要介绍了shell脚本怎样判断文件是否存在问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 关于SSH 远程执行命令你要知道的二三事

    关于SSH 远程执行命令你要知道的二三事

    SSH 是 Linux 下进行远程连接的基本工具,但是如果仅仅用它来登录那可是太浪费啦!SSH 命令可是完成远程操作的神器啊,下面这篇文章主要给大家介绍了关于SSH 远程执行命令的一些相关资料,需要的朋友可以参考下。
    2017-07-07
  • linux rsync安装 配置 实例详解

    linux rsync安装 配置 实例详解

    这篇文章主要介绍了linux rsync安装 配置 实例详解,需要的朋友可以参考下
    2015-11-11
  • shell脚本实现实时检测文件变更

    shell脚本实现实时检测文件变更

    这篇文章主要介绍了shell脚本实现实时检测文件变更,本文直接给出实现代码和使用方法,以及svn下的实现代码,需要的朋友可以参考下
    2015-05-05
  • Linux中的内核链表实例详解

    Linux中的内核链表实例详解

    这篇文章主要介绍了Linux中的内核链表实例详解的相关资料,链表中一般都要进行初始化、插入、删除、显示、释放链表,寻找节点这几个操作,需要的朋友可以参考下
    2017-08-08

最新评论