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

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

centos7实现ssh免秘钥分发的更多相关文章

  1. Centos7 配置ssh 免秘钥登陆

    1.yum install -y openssh 2.servier1: ssh-keygen -t rsa #有提示的直接enter 3.server 2: ssh-keygen -t rsa # ...

  2. Linux SSH 免秘钥登录

    SSH 免秘钥登录 ssh:是一种安全加密协议 ssh  username@hostname     ssh gongziyuan.com:以当前用户登录该机器(如果不是当前用户,需要这么干:ssh ...

  3. linux下ssh免秘钥登录

    1.检查防火墙是否关闭 (1)切换到root用户 (2)查看防火墙状态 service iptables status 这是没有关闭 (3)设置关闭 service iptables stop 2.检 ...

  4. ssh免秘钥登陆实现

    1.用处 搭建集群或者工作中登陆跳板机经常需要做免秘钥互相登陆彼此服务器. 2. 准备工作   假设A主机10.20.0.1想通过ssh登录到B主机10.20.0.2上.   那么客户端(A主机)需要 ...

  5. ssh免秘钥配置

    1.要求:两台相同的系统,这里设置server1控制server2的服务器 2.先在两台服务器上都安装好ssh 输入命令下载: yum install -y openssh-clients opens ...

  6. 服务器做ssh免秘钥登陆

    集群内服务器做非root用户免秘钥登陆:1.node1新建用户abc1,制作公钥.私钥(一路回车键即可)ssh-keygen –t rsa将自动在/home/abc1/.ssh/目录下创建公私钥文件如 ...

  7. ssh免秘钥

    用过好几次免秘钥,但是每次都会忘了应该把copy谁的公钥到另外用户的.ssh文件夹 这里专门记录一次 注意点: A要使用ssh免密登录到B用户下(可以使远程服务器),就把A的用户下的.ssh文件的id ...

  8. ssh免秘钥登录

    简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程 ...

  9. Linux上ssh免秘钥互登

    两台机器分别为:master:192.168.1.10sever1:192.168.1.20 1.检查机器名和连通性 a.查看/etc/hostname [root@master master]# m ...

随机推荐

  1. element table组件懒加载

    directives : { loadmore : { bind(el, binding) { const selectWrap = el.querySelector('.el-table__body ...

  2. [CSP-S模拟测试]:Emotional Flutter(贪心)

    题目传送门(内部题51) 输入格式 第一行一个整数$t$表示数据组数.每组数据的第一行有三个整数$s,k,n$.第二行有$n$个整数$A_1,A_2,...,A_n$,依次表示黑白条的长度. 输出格式 ...

  3. [CSP-S模拟测试]:Revive(点分治)

    题目背景 $Sparkling\ ashes\ drift\ along\ your\ flames \\ And\ softly\ merge\ into\ the\ sky$ 题目传送门(内部题1 ...

  4. LintCode之删除链表中的元素

    题目描述 我的代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode n ...

  5. MySQL查询上一条记录和下一条记录

    如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...

  6. Html5 学习笔记 --》html基础 css 基础

    HTML5 功能 HTML5特点 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta cha ...

  7. leetcode.图.207课程表-Java

    1. 具体题目 现在你总共有 n 门课需要选,记为 0 到 n-1.在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1].给定 ...

  8. webstorm的下载、破解、与汉化

    其实很简单的事情,都被我弄复杂了倒腾了很久,特做个记录. 说明前提,版本为 webstorm 2018.1.4 一.下载webstorom 下载地址:当然去官网啊  https://www.jetbr ...

  9. python学习笔记--类(一)

    # 类是为了代码重用 class First: #类 pass #实例 = 类名() obj = First() # 类是一种产生实例的工厂# 类和模块的差异在于,内存中特定的模块只有一个实例(所以我 ...

  10. 关于Django中ORM数据库迁移的配置

    Django中ORM数据库迁移配置 1,若想将模型转为mysql数据库中的表,需要在settings中配置: DATABASES = { 'default': { 'ENGINE': 'django. ...