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
相关文章
|
2月前
|
大数据 网络安全 数据安全/隐私保护
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(二)
153 5
|
2月前
|
XML 大数据 网络安全
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
大数据-03-Hadoop集群 免密登录 超详细 3节点云 分发脚本 踩坑笔记 SSH免密 集群搭建(一)
77 4
|
4月前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
131 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
7月前
|
安全 网络安全 数据安全/隐私保护
ansible 建立ssh信任并分发到各个机器
ansible 建立ssh信任并分发到各个机器
155 0
WXM
|
5月前
|
Java 应用服务中间件 网络安全
Eclipse运行SSM/SSH项目教程
Eclipse运行SSM/SSH项目教程
WXM
205 0
|
5月前
|
监控 网络协议 网络安全
ssh服务中如何批量管理100多台机器(Paramiko、 psutil模块)、跳板机(堡垒机)
ssh服务中如何批量管理100多台机器(Paramiko、 psutil模块)、跳板机(堡垒机)
|
JavaScript Java 网络安全
从零玩转之JPOM自动化部署本地构建 + SSH 发布 java 项目
从零玩转之JPOM自动化部署本地构建 + SSH 发布 java 项目
366 0
|
安全 网络协议 Linux
Linux SSH:安全远程访问与管理
SSH(Secure Shell)是一种网络协议,广泛应用于Linux系统中,用于在不安全的网络中进行安全的远程访问和管理。SSH协议通过加密和身份认证机制,确保数据传输的安全性和用户身份的可靠性。本文将深入探讨Linux下的SSH协议,包括工作原理、配置、密钥认证、安全性措施以及实际应用等,帮助读者充分了解SSH的重要性,并学会在Linux系统中正确使用SSH实现安全远程访问和管理。
628 0
|
7月前
|
监控 前端开发 安全
【专栏】介绍了前端工程师如何掌握SSH命令,包括SSH协议的基础知识、命令行操作如登录、文件传输、目录管理和进程管理
【4月更文挑战第29天】本文介绍了前端工程师如何掌握SSH命令,包括SSH协议的基础知识、命令行操作如登录、文件传输、目录管理和进程管理。在前端开发中,SSH用于部署项目、协同后端开发及服务器监控。文章还强调了使用密钥认证、配置别名及安全注意事项,并提醒开发者面对问题时如何解决。学习和熟练运用SSH是前端工程师适应复杂项目需求的关键。
142 0
|
7月前
|
Shell 网络安全 开发工具
GitLab创建项目的时候需要SSH Keys
GitLab创建项目的时候需要SSH Keys
46 0