• centos7实现ssh免秘钥分发


    centos7的秘钥分发与centos6的秘钥分发还有点不一样,今天在给朋友排坑,在网上找了半天,也没有一个好解决方法,就只能自己研究,今天就把我解决的问题分享出来;那么如何实现centos7秘钥分发呢

    问题:

    在centos6执行这个命令是可以的,能够把公钥传输过去

    sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "10.0.0.20 -p22 -o StrictHostKeyChecking=no" 

    但在centos上就不行,公钥也传输不过去

    解决:

    在百度查找不到的情况下,只能拿起man命令,通过man  ssh-copy-id查看参数,一个个调试,终于弄好

    可以看出它与centos6的格式有一点不同

    sshpass -p123456 ssh-copy-id -f -i /root/.ssh/id_dsa.pub 10.0.0.17 -p 22 -o StrictHostKeyChecking=no
    

    可以看出秘钥分发成功

    在测试是否加上 -o StrictHostKeyChecking=no参数,在命令行测试时,是不需要加的,但在脚本中执行,必须加上要不然就分发不了秘钥,这块测试了好久;

    最后奉上我的法宝   centos7_ipgiveout.sh

    #!/bin/bash
    #################################################
    #    File Name: centos7_ipgiveout.sh
    #       Author: lxw
    #         Mail: 1451343603@qq.com
    #OS   centos7
    # Function: # Created Time: Fri 05 Apr 2019 05:05:52 PM CST ################################################# [ -f /etc/yum.repos.d/epel.repo ]||echo "正在安装epel源..." wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo &>/dev/null rpm -q sshpass &>/dev/null ||echo "正在安装sshpass..." yum -y install sshpass &>/dev/null #创建密钥对 echo "正在创建密钥对...." [ -d ~/.ss ] || mkdir ~/.ssh &>/dev/null;chmod 700 ~/.ssh rm -fr ~/.ssh/* ssh-keygen -t rsa -f "/root/.ssh/id_rsa" -N "" -q && echo "创建密钥对成功" || exit #秘钥分发 echo "正在分发密钥对" for ip in `cat iplist.txt` do echo "-----秘钥分发到$ip----" sshpass -p123456 ssh-copy-id -f -i /root/.ssh/id_rsa.pub $ip -p 22 -o StrictHostKeyChecking=no &>/dev/null if [ $? -eq 0 ];then echo "----秘钥分发到$ip成功----" else echo "----秘钥分发到$ip失败----" fi done

    到此,问题已解决,虽然在排错的时候花了点时间,但收获还蛮大的!

  • 相关阅读:
    css3 练习
    onethink 返回上一页
    小程序之轮播图
    Node 基本使用
    IDEA Terminal
    Spring Shell简单应用
    Spring Theme简单应用
    Spring MVC的学习笔记
    Win10出现键盘未失灵,按下的键都是快捷键的问题
    SQL Server 添加描述
  • 原文地址:https://www.cnblogs.com/wzxmt/p/10659783.html
Copyright © 2020-2023  润新知