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上面操作如下:

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

[[email protected] ~]$ pwd
/home/oldgirl
[[email protected] ~]$ 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端口,分发方法

[[email protected] ~]$ ssh-copy-id -i .ssh/id_dsa.pub [email protected] #需要yes确认

[[email protected] ~]$ ssh-copy-id -i .ssh/id_dsa.pub [email protected] #需要yes确认

[[email protected] ~]$ ssh-copy-id -i .ssh/id_dsa.pub [email protected] #需要yes确认

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

[[email protected] ~]$ ssh-copy-id -i .ssh/id_dsa.pub “-p 52113 [email protected]" #需要yes确认

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

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

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

[[email protected] ~]$ whoami
oldgirl
[[email protected] ~]$ pwd
/home/oldgirl
[[email protected] ~]$ mkdir scripts
[[email protected] ~]$ cd scripts/
[[email protected] scripts]$ vi view_ip.sh
ssh [email protected] /sbin/ifconfig eth0
ssh [email protected] /sbin/ifconfig eth0
ssh [email protected] /sbin/ifconfig eth0

企业里实现ssh方案:3种

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

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

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

在nfs服务上面操作

[[email protected] oldgirl]# echo "oldgirl ALL= NOPASSWD:/usr/bin/rsync" >>/etc/sudoers #赋予oldgirl rsync权限。
[[email protected] oldgirl]# visudo -c #检查语法是否错误
/etc/sudoers: parsed OK
然后在m01机器上面操作
[[email protected] ~]$ scp ~/hosts [email protected]:~  ##先把家目录下hosts模板拷贝到31机器的oldgirl的家目录下。
[[email protected] ~]$ ssh  sudo rsync ~/hosts /etc/hosts ##远程到31机器上面,用rsync 提权把家目录的hosts文件替换到/etc/hosts

还可以用脚本批量分发实现:fenfa.sh脚本,然后sh fenfa.sh或者bash fenfa.sh
[[email protected] ~]$ cat fenfa.sh 
scp -P22 ~hosts [email protected]:~
ssh -p22 -t [email protected] sudo rsync ~/hosts /etc/hosts

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

rsync -avz hosts -e "ssh -p 52113" [email protected]:~

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

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

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

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

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

然后在m01机器上面操作
[[email protected] ~]$ scp ~/hosts :~  ##先把家目录下hosts模板拷贝到31机器的oldgirl的家目录下。
[[email protected] ~]$ ssh [email protected] rsync ~/hosts /etc/hosts ##远程到31机器上面,用rsync把家目录的hosts文件替换到/etc/hosts
时间: 2024-08-07 06:21:12

ssh批量管理分发项目实战介绍与实践的相关文章

7)SSH批量管理分发项目

ssh服务认证类型介绍 从SSH客户端来看,SSH服务主要提供两种级别的安全验证,具体级别如下: 基于口令的安全验证: 基于口令的安全验证的方式就是大家一直在用的,只要知道服务器的SSH连接账号和口令,应用服务器的IP及开放的端口,默认为22,就可以通过SSH客户端登录到这台远程主机.此时,联机过程中所有传输的数据都是加密的. 基于口令的我们可以通过expect,pssh,sshpass实现批量管理. 期中集群:一键搭建及优化50台服务器集群 基于密钥的安全验证: 基于密钥的安全验证方式是指,需

Web集群之SSH批量管理

1.什么是SSH批量管理在管理机产生公钥和私钥,然后把自己的公钥推送给需要被管理的服务器,然后就可以通过scp和ssh命令,无需输入密码即可管理 锁=公钥,钥匙=私钥 企业里实现ssh方案:1)直接root ssh key.条件:系统允许root使用ssh2)sudo提权来实现没有权限用户拷贝 实验环境: hostname ip 描述 m01 172.16.1.61 管理机 web01 172.16.1.7 被管理 nfs 172.16.1.31 被管理 backup 172.16.1.41 被

01 (maven+SSH)网上商城项目实战之项目简介

项目简介: 网站架构:

06(maven+SSH)网上商城项目实战之springmvc配置

1.创建后台配置文件springmvc-back.xml     <context:component-scan base-package="cn.liu"         use-default-filters="false">         <context:include-filter type="annotation"             expression="org.springframework.s

03(maven+SSH)网上商城项目实战之数据库设计(PMD)

数据库物理模型: 数据库SQL: create table consignee_management (    consignee_id         int not null auto_increment,    user_id              int,    consignee_name       varchar(50),    consignee_address    varchar(1000),    consignee_code       varchar(10),   

10(maven+SSH)网上商城项目实战之页面缓存OSCache

OScache是什么?是一个高性能的J2EE缓存框架,缓存部分JSP或HTTP请求,任何Java对象都可以缓存缓存以key value 方式来存储也可以永久缓存:缓存可以随意写入磁盘支持集群 使用OSCache:1.把所需jar拷贝lib2.把oscache安装目录下oscache.properties放入src目录下3.引入<%@taglib prefix="oscache" uri="http://www.opensymphony.com/oscache"

11(maven+SSH)网上商城项目实战之Freemarker 页面静态化

FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 l         FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用程序 l         虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据(如下图) 模板 + 数据模型 = 输出 l         FreeMarker不是一个Web应用框架,而适合作为Web应用框架一个组件 l 

管理openstack多region介绍与实践

转:http://www.cnblogs.com/zhoumingang/p/5514853.html 概念介绍 所谓openstack多region,就是多套openstack共享一个keystone和horizon.每个区域一套openstack环境,可以分布在不同的地理位置,只要网络可达就行.个人认为目的就是为了提供环境隔离的功能,选择启虚拟机的时候可以根据自己所处的位置就近选择. 既然提到region了,那不如就此总结下openstack中其他的至上而下的不同的区域概念. Region

(转)SSH批量分发管理&amp;非交互式expect

目录 1 SSH批量分发管理 1.1 测试环境 1.2 批量管理步骤 1.3 批量分发管理实例 1.3.1 利用sudo提权来实现没有权限的用户拷贝 1.3.2 利用sudo提权开发管理脚本 1.3.3 利用rsync来实现增量备份 1.4 SSH批量管理分发脚本实战 1.5 SSH批量管理总结 2 非交互式expect 2.1 非交互式生成密钥及实现批量管理 2.2 一键批量安装httpd服务 2.3 一键自动化50台规模集群网站 1 SSH批量分发管理 基于口令的,如何实现批量管理:expe