【Linux网络服务】SSH密钥的批量分发

简介: 【Linux网络服务】SSH密钥的批量分发

1.wget获取epel源

wget http://files.tttidc.com/centos6/epel-6.repo
mv epel-6.repo /etc/yum.repos.d/

42d2b0f779ff437eb2ac4483d3ce47df.jpg

2.检查本地挂载情况,如果没挂载,须先挂载

挂载命令:mount /dev/sr0 /mnt  #挂在路径根据你们自己本地的yum源来挂载


f9ec8578138d4653916b4307c600e2e2.jpg

#清空缓存
yum clean all
#创建缓存
yum makecache

3.下载sshpass软件包

yum -y install sshpass


9b35c3490be7422191f3e8942e8764f1.jpg

4.创建密钥对文件

ssh-keygen -t dsa #指定dsa算法

6e91083810884add9db4b131eb418209.jpg


58a751b29ad448c0b242bfa8df7e2d07.jpg

5.免交互方式发放公钥

sshpass -p "123456" ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no root@192.168.10.91

7bfa621421ed4d5aa70a826f4fb8e8fd.jpg


307d50f631b64f4aa377b12563448a26.jpg

6.测试免密登录

ssh 192.168.10.91


46e831e3f50b48248b2332bd8e8f8a6e.jpg

7.编写ssh密钥对免交户批量分发脚本

#!/bin/bash
#author:lixiang
#2021-09-13
#定义变量
user=root
password=123456
function YumBuild(){
echo "正在安装epel源yum仓库..."
cd /etc/yum.repos.d/
wget http://files.tttidc.com/centos6/epel-6.repo &>/dev/null
yum clean all &>/dev/null
yum makecache &>/dev/null
}
echo "测试主机ip是否能连接外网..."
ping www.baidu.com -c 2 >/dev/null || (echo "无法连接外网,请检查本地网络环境" && exit)
[ $# -eq 0 ] && echo "没有参数!格式为:sh $0 " && exit
YumBuild
if [ $? -gt 0 ];then
echo "epel源构建失败..." && exit
fi
rpm -q sshpass &>/dev/null || yum -y install sshpass &>/dev/null || (echo "sshpass build error!" && exit)
[ -d ~/.ssh ] || mkdir ~/.ssh
chmod 700 ~/.ssh
echo "正在创建密钥对..."
ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa &>/dev/null
for ip in $*
do
   ping $ip -c 2 &>/dev/null
   if [ $? -gt 0 ];then
  echo "$ip无法ping通网络"
        continue
   fi
sshpass -p "$password" ssh-copy-id -i ~/.ssh/id_dsa.pub -o StrictHostKeyChecking=no ${user}@$ip &>/dev/null
echo "$ip 公钥分发成功"
done


d38a0ed7c86043c39f0aafd30b613857.jpg

8.测试公钥发放

chmod u+x ssh.sh #赋予执行权限
./ssh.sh 192.168.10.92 192.168.10.93 192.168.10.94 192.168.10.95 192.168.10.96


6deb9a33b670482581854958bc620020.jpg


00cb4d99f7a54dbf9f094cab3443e6be.jpg


相关文章
|
6月前
|
安全 Linux 网络安全
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
191 0
Nipper 3.9.0 for Windows & Linux - 网络设备漏洞评估
|
7月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
487 18
|
9月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
472 61
|
7月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
377 5
|
8月前
|
Web App开发 网络协议 Linux
【Linux】网络基础
TCP/IP五层模型是网络通信的基础框架,将复杂的数据传输过程分为物理层、数据链路层、网络层、传输层和应用层,每层各司其职,协同完成远程通信。该模型确保了不同设备和网络之间的互联互通,是现代互联网运行的核心机制。
859 5
|
10月前
|
安全 网络协议 Linux
Linux网络应用层协议展示:HTTP与HTTPS
此外,必须注意,从HTTP迁移到HTTPS是一项重要且必要的任务,因为这不仅关乎用户信息的安全,也有利于你的网站评级和粉丝的信心。在网络世界中,信息的安全就是一切,选择HTTPS,让您的网站更加安全,使您的用户满意,也使您感到满意。
297 18
|
8月前
|
网络协议 Linux 开发者
深入Linux中UDP网络通信机制编程探索
以上步骤概述了Linux中UDP网络通信的编程机制。在实现时,因关注细节和上下文环境可能有所调整,但大致流程是一致的。这些知识片段旨在帮助开发者快速上手Linux下的UDP编程,并提供可靠的信息作为编程的基础。在编程实践中,应结合实际业务需求,设计合适的数据传输协议,确保数据的正确性和实时性。
202 0
|
10月前
|
Ubuntu Linux 网络安全
在Linux云服务器上限制特定IP进行SSH远程连接的设置
温馨提示,修改iptables规则时要格外小心,否则可能导致无法远程访问你的服务器。最好在掌握足够技术知识和理解清楚操作含义之后再进行。另外,在已经配置了防火墙的情况下,例如ufw(Ubuntu Firewall)或firewalld,需要按照相应的防火墙的规则来设置。
543 24
|
10月前
|
Linux 数据安全/隐私保护
使用Linux命令行接入无线网络Wi-Fi的示例。
现在,你已经使用命令行成功地连接到 Wi-Fi 网络了。这两个示例涵盖了用 `nmcli` 和 `wpa_supplicant` 连接无线网络的常见场景,让你能够不依赖图形化界面来完成这个任务。在日常使用中熟练掌握这些基本操作能增强你对 Linux 系统的理解,帮助你更有效地处理各种问题。
837 12
|
Ubuntu 网络协议 Unix
02理解网络IO:实现服务与客户端通信
网络IO指客户端与服务端通过网络进行数据收发的过程,常见于微信、QQ等应用。本文详解如何用C语言实现一个支持多客户端连接的TCP服务端,涉及socket编程、线程处理及通信流程,并分析“一消息一线程”模式的优缺点。
463 0