美文网首页
ssh-分发密钥详解

ssh-分发密钥详解

作者: 1220 | 来源:发表于2019-09-17 02:12 被阅读0次

1. ssh-keygen非交互式创建秘钥对:

ssh-keygen命令: 生成、管理和转换认证密钥

具体命令:ssh-keygen -f ~/.ssh/id_rsa -P '' -q

参数讲解:
ssh-keygen:         密钥对创建工具
[-P old_passphrase]  密码 (提供(旧)密语)
[-f output_keyfile]  指定密钥文件名
[-q] 不输出信息      (安静模式)
[-t dsa ]            指定秘钥类型。
创建密钥对后,会在~/.ssh/生成公钥(id_rsa.pub)和私钥(id_rsa)

~/.ssh/id_rsa
             该用户默认的 RSA 身份认证私钥(SSH-2)。此文件的权限应当至少限制为"600"。
             生成密钥的时候可以指定采用密语来加密该私钥(3DES)。
             ssh(1) 将在登录的时候读取这个文件。
~/.ssh/id_rsa.pub
             该用户默认的 RSA 身份认证公钥(SSH-2)。此文件无需保密。
             此文件的内容应该添加到所有 RSA 目标主机的 ~/.ssh/authorized_keys 文件中。
image.png

2. ssh-copy-id不需要提示yes/no分发秘钥

ssh-copy-id命令
可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。

具体命令:
ssh-copy-id -f -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no 172.16.1.8

参数讲解:
ssh-copy-id -f -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@172.16.1.8

参数讲解:
-i 指定认证文件(公钥)
-f 强制模式
-n 测试,不实际替换
-p port 指定端口
-o option 指定其他 ssh 参数
StrictHostKeyChecking=no  免yes或no提示

3. sshpass工具:指定密码非交互分发秘钥,不需要提示yes/no分秘钥

sshpass命令:
是一个简单、轻量级的命令行工具,通过它我们能够向命令提示符本身提供密码(非交互式密码验证),这样就可以通过 cron 调度器执行自动化的 shell 脚本进行备份。

sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no" root@172.16.1.31

参数:
-f filename:从文件中获取密码
-d number:使用数字作为获取密码的文件描述符
-p password:指定明文本密码输入(安全性较差)
-e 从环境变量SSHPASS获取密码
-o StrictHostKeyChecking=no {用户名}@{主机IP} 免yes或no提示/忽略密码提示

4. ansible关闭ssh首次连接时yes/no提示

使用ssh连接时,可以使用-o参数将StrictHostKeyChecking设置为no,
避免使用ssh连接时避免首次连接时让输入yes/no部分的提示。

方法1:
修改 /etc/ansible/ansible.cfg中的374行
374行改为:
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no

方法2:
修改 /etc/ansible/ansible.cfg中的71行
71行的注释取消:host_key_checking = False

一键生成密钥脚本

#/bin/bash
rm -f ~/.ssh/*
#yum install sshpass -y  
ssh-keygen -f ~/.ssh/id_rsa  -P '' -q
for ip in 7 61   # ip号,为了循环下面的$ip
do
sshpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyChecking=no"  172.16.1.$ip
done

相关文章

  • ssh-分发密钥详解

    1. ssh-keygen非交互式创建秘钥对: 2. ssh-copy-id不需要提示yes/no分发秘钥 3. ...

  • Jenkins+gitlab

    1.ssh-keygen 生成SSH密钥 2.找到gitlab-用户头像-设置-SSH-添加 3.gitlab可以...

  • 量子密钥分发

    姓名:刘晨松 学号:20011210113 转自:https://blog.csdn.net/zhbgreat/a...

  • Android 事件分发机制详解

    第97期:Android 事件分发机制详解 diycode 社区布道奖的三个文章 Android 事件分发机制详解...

  • MotionEvent详解

    Android MotionEvent 详解,之前用了两篇文章 事件分发机制原理 和 事件分发机制详解 来讲解事件...

  • 自定义View进阶《十四》——MotionEvent详解

    Android MotionEvent 详解,之前用了两篇文章 事件分发机制原理 和 事件分发机制详解来讲解事件分...

  • 密钥详解

    密钥详解 在之前的文章中,我们讲到了对称密码,公钥密码,消息认证码和数字签名等密码学的技术,这些技术中都使用到了一...

  • 密钥分发中心(KDC)

    密钥分发中心(KDC) 密钥分发中心是一种运行在物理安全服务器上的服务,KDC维护着领域中所有安全主体账户信息数据...

  • android 事件分发

    图解 Android 事件分发机制 Android事件分发机制详解:史上最全面、最易懂

  • 事件分发

    Android事件分发机制详解:史上最全面、最易懂

网友评论

      本文标题:ssh-分发密钥详解

      本文链接:https://www.haomeiwen.com/subject/jmwkectx.html