欢迎来到代码驿站!

Shell

当前位置:首页 > 脚本语言 > Shell

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

时间:2020-12-20 12:56:08|栏目:Shell|点击:

需求

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

环境

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之分离解析脚本的实现方法

栏    目:Shell

下一篇:完美解决gvim的菜单乱码问题

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

本文地址:http://www.codeinn.net/misctech/34767.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有