当前位置: 首页 > news >正文

ssh批量管理分发项目实战介绍与实践

ssh认证类型:

基于口令的安全验证,批量管理?expect,pssh,sshpass

m01

机器(钥匙)私钥
被管理机器(锁)公钥
     m01
nfs01
backup
web01

1、在上面4台机器上面操作:创建用户及密码

useradd oldgirl

echo 123456|passwd --stdin oldgirl

id oldgirl

su - oldgirl

2、创建密钥对

在m01上面操作如下:

[oldgirl@m01 ~]$ ssh-keygen -t dsa #创建dsa类型的密钥对,一路按回车就生成了密钥对

[oldgirl@m01 ~]$ pwd
/home/oldgirl
[oldgirl@m01 ~]$ ll .ssh/
total 8
-rw------- 1 oldgirl oldgirl 668 Aug 15 20:49 id_dsa  #钥匙
-rw-r--r-- 1 oldgirl oldgirl 601 Aug 15 20:49 id_dsa.pub  #锁

分发密钥:

ssh默认22端口,分发方法

[oldgirl@m01 ~]$ ssh-copy-id -i .ssh/id_dsa.pub oldgirl@172.16.1.41 #需要yes确认

[oldgirl@m01 ~]$ ssh-copy-id -i .ssh/id_dsa.pub oldgirl@172.16.1.31 #需要yes确认

[oldgirl@m01 ~]$ ssh-copy-id -i .ssh/id_dsa.pub oldgirl@172.16.1.8 #需要yes确认

ssh更改过的ssh端口分发方法

[oldgirl@m01 ~]$ ssh-copy-id -i .ssh/id_dsa.pub “-p 52113 oldgirl@172.16.1.41" #需要yes确认

在backup服务器查看公钥已拷贝成功:

[oldgirl@backup ~]$ pwd
/home/oldgirl
[oldgirl@backup ~]$ ll .ssh/
total 4
-rw------- 1 oldgirl oldgirl 601 Aug 15 21:03 authorized_keys

测试:成功标志如下在m01机器上面操作:批量查询,不用输入密码就说明已经成功了。

[oldgirl@m01 ~]$ whoami
oldgirl
[oldgirl@m01 ~]$ pwd
/home/oldgirl
[oldgirl@m01 ~]$ mkdir scripts
[oldgirl@m01 ~]$ cd scripts/
[oldgirl@m01 scripts]$ vi view_ip.sh
ssh oldgirl@172.16.1.31 /sbin/ifconfig eth0
ssh oldgirl@172.16.1.41 /sbin/ifconfig eth0
ssh oldgirl@172.16.1.8 /sbin/ifconfig eth0


wKiom1mS9wqQWcugAAEE8_atK5I969.jpg


企业里实现ssh方案:3种

1、直接root权限(条件允许root ssh登录)

2、sudo提权实现密钥权限的用户拷贝

在nfs服务器上面:visudo尾部添加如下权限:

在nfs服务上面操作

1
2
3
[root@nfs01 oldgirl] # echo "oldgirl ALL= NOPASSWD:/usr/bin/rsync" >>/etc/sudoers #赋予oldgirl rsync权限。
[root@nfs01 oldgirl] # visudo -c #检查语法是否错误
/etc/sudoers : parsed OK


1
2
3
4
5
6
7
8
然后在m01机器上面操作
[oldgirl@m01 ~]$  scp  ~ /hosts  oldgirl@172.16.1.31:~   ##先把家目录下hosts模板拷贝到31机器的oldgirl的家目录下。
[oldgirl@m01 ~]$  ssh  -p22 -t   sudo  rsync  ~ /hosts  /etc/hosts  ##远程到31机器上面,用rsync 提权把家目录的hosts文件替换到/etc/hosts
 
还可以用脚本批量分发实现:fenfa.sh脚本,然后sh fenfa.sh或者 bash  fenfa.sh
[oldgirl@m01 ~]$  cat  fenfa.sh 
scp  -P22 ~hosts oldgirl@172.16.1.31:~
ssh  -p22 -t oldgirl@172.16.1.31  sudo  rsync  ~ /hosts  /etc/hosts

还可以用rsync增量,加密传输:

rsync -avz hosts -e "ssh -p 52113" oldgirl@172.16.1.41:~

1、增量 (scp是全量,rsync是增量)

2、加密(scp和rsync都是加密)


3、利用suid来实现拷贝(思维拓展了解)

先在nfs上面用root登录给予rsync命令的文件赋予属主s权限。

[oldgirl@nfs01 ~]$ su - root
Password: 
[root@nfs01 ~]# which rsync
/usr/bin/rsync
[root@nfs01 ~]# ll `which rsync`
-rwxr-xr-x 1 root root 414968 Apr 30  2014 /usr/bin/rsync
[root@nfs01 ~]# chmod u+s /usr/bin/rsync 
[root@nfs01 ~]# ll `which rsync`
-rwsr-xr-x 1 root root 414968 Apr 30  2014 /usr/bin/rsync


1
2
3
然后在m01机器上面操作
[oldgirl@m01 ~]$  scp  ~ /hosts  :~   ##先把家目录下hosts模板拷贝到31机器的oldgirl的家目录下。
[oldgirl@m01 ~]$  ssh  oldgirl@172.16.1.31  rsync  ~ /hosts  /etc/hosts  ##远程到31机器上面,用rsync把家目录的hosts文件替换到/etc/hosts
本文转自sandshell博客51CTO博客,原文链接http://blog.51cto.com/sandshell/1956607如需转载请自行联系原作者                              sandshell

相关文章:

  • Linux防火墙详解(一)
  • Linux内核驱动基础(一)常用宏定义【转】
  • xshell使用xftp传输文件、使用pure-ftpd搭建ftp服务
  • hibernate增删改
  • maven学习:jetty插件与Tomcat插件
  • 聊下 git 多账户问题
  • Datanode Hang with High thread blocked
  • 安装heartbeat
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • 菜鸟学Linux 第065篇笔记 nfs
  • 更改INSM地址的操作
  • centos 7 yum安装kubernetes cluster 1.0
  • C++字符串string类常用操作详解(一)【初始化、遍历、连接】
  • Java设计模式圣经连载(03)-抽象工厂模式
  • Centos中文乱码问题的解决。
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • canvas 绘制双线技巧
  • django开发-定时任务的使用
  • HTML中设置input等文本框为不可操作
  • Javascript弹出层-初探
  • Java的Interrupt与线程中断
  • Java方法详解
  • Js基础知识(四) - js运行原理与机制
  • k8s如何管理Pod
  • leetcode讲解--894. All Possible Full Binary Trees
  • MQ框架的比较
  • PHP那些事儿
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue脚手架vue-cli
  • web标准化(下)
  • WinRAR存在严重的安全漏洞影响5亿用户
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 爱情 北京女病人
  • 成为一名优秀的Developer的书单
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 深度学习入门:10门免费线上课程推荐
  • 详解NodeJs流之一
  • 一个完整Java Web项目背后的密码
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 组复制官方翻译九、Group Replication Technical Details
  • ​configparser --- 配置文件解析器​
  • ​批处理文件中的errorlevel用法
  • #pragam once 和 #ifndef 预编译头
  • #vue3 实现前端下载excel文件模板功能
  • (C++17) optional的使用
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (pytorch进阶之路)扩散概率模型
  • (二十四)Flask之flask-session组件
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (三)c52学习之旅-点亮LED灯
  • (三十五)大数据实战——Superset可视化平台搭建
  • (四)linux文件内容查看
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)四层和七层负载均衡的区别