免交互批量分发公钥脚本

[root@m01 ~]# cat /server/scripts/distribute_key.sh 
#!/bin/bash
. /etc/init.d/functions

# 创建秘钥对

if [ ! -f /root/.ssh/id_dsa ]
then
  ssh-keygen -t dsa -f /root/.ssh/id_dsa -P "" >/dev/null
  action "key pair create"  /bin/true
else
  action "key pair already exists" /bin/false
fi

# 分发公钥信息

for ip in 7 31 41
do
   sshpass -p654321 ssh-copy-id -i ~/.ssh/id_dsa.pub 172.16.1.$ip -o StrictHostKeyChecking=no &>/dev/null
   if [ $? -eq 0 ]
   then 
      action "host 172.16.1.$ip pub_key distribute"  /bin/true
      echo ""
   else
      action "host 172.16.1.$ip pub_key distribute"  /bin/false
      echo ""
   fi
done

免交互批量检查公钥脚本 :

[root@m01 ~]# cat /server/scripts/check_key.sh 
#!/bin/bash
. /etc/init.d/functions

# 检查公钥信息

for ip in 7 31 41
do
   ssh 172.16.1.$ip hostname &>/dev/null
   if [ $? -eq 0 ]
   then 
      action "host 172.16.1.$ip connect"  /bin/true
      echo ""
   else
      action "host 172.16.1.$ip connect"  /bin/false
      echo ""
   fi
done

免交互分发密码 :

不用输入 YES

ssh 172.16.1.31 -o StrictHostKeyChecking=no ssh-copy-id -i ~/.ssh/id_dsa.pub 172.16.1.31 -o StrictHostKeyChecking=no

补充: 理解分发公钥原理过程 ssh-copy-id

  1. 利用ssh和远程主机建立连接

  2. 将本地公钥文件信息传输到远程主机上

  3. 远程主机收到公钥信息 会保存到~/.ssh/authorized_keys 并且授权为600

不用输入密码

sshpass -p654321 ssh-copy-id -i ~/.ssh/id_dsa.pub 172.16.1.31 -o StrictHostKeyChecking=no
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 远程管理服务简绍 ( 了解 ) SSH : 服务端口 22 对远程传输数据进行加密 默认支持 root ...
    苗小笨_be86阅读 4,108评论 0 0
  • 远程管理服务配置文件 /etc/ssh/sshd_config --- ssh服务端配置文件/etc/ssh/...
    Linux63阅读 2,271评论 0 0
  • 昨日补充 远程服务的配置文件 ssh服务端配置文件说明 ssh的防范措施 1 .尽量使用秘钥认证,不要使用密码认证...
    麟之趾a阅读 3,089评论 0 0
  • 2014,在经历几段莫名其妙的网恋最终以判断是自己的自作多情作为最终总结出陈辞后,下定决心再也不被网上某个家伙的几...
    槛内人阅读 2,713评论 1 4
  • 哈密瓜椭圆形的身子,有点儿像橄榄球,翠绿或是金黄的外衣上像蚕丝一样布满了白色的网状型条纹,猛一看,很像老奶...
    韩佳成_54188阅读 1,891评论 1 3