ssh key密钥认证实现批量分发、管理、部署

在实际生产环境中,如果需要批量管理和部署服务器,可以采用ssh+key秘钥认证,然后可以免密码进行数据分发,服务部署及管理。

SSH服务(TCP端口号22):安全的命令解释器

为客户机提供安全的Shell 环境,用于远程管理

SSH基于公钥加密(非对称加密)技术: 数据加密传输; 客户端和服务器的身份验证;

公钥 和 私钥   是成对生成的,这两个密钥互不相同,两个密钥可以互相加密和解密;不能根据一个密钥而推算出另外一个密钥;

公钥对外公开,私钥只有私钥的持有人才知道。

ssh批量分发

首先需要创建公钥私钥,然后将公钥放到client端,私钥留在分发端。

公钥相当于锁,私钥相当于钥匙。

我这里是采用普通用户,root用户认证不建议,存在安全隐患。

ssh-keygen  -t  dsa

[[email protected] .ssh]# ll

total 8

-rw------- 1 tuwei tuwei 668 Apr 27 13:57 id_dsa

-rw-r--r-- 1 tuwei tuwei 608 Apr 27 13:57 id_dsa.pub

然后将公钥拷贝到其他client端。

ssh-copy-id -i id_dsa.pub [email protected]:~拷贝到远端的家目录

[[email protected] .ssh]$ ll

total 4

-rw-------. 1 tuwei tuwei 1216 Apr 30 01:49 authorized_keys

注意:采用ssh-copy-id脚本将公钥拷贝到远端,在远端会生成一个.ssh目录(目录权限为700)。文件权限为600,不能作更改。

做好分发后进行测试,通过ssh连接到远端

[[email protected] ~]$ ssh [email protected]

Last login: Mon May  8 10:28:31 2017 from 192.168.1.10

Hi,welcome to the linux learning class

keep on learning

查看远端ip

[[email protected] ~]$ ssh  [email protected]  /sbin/ifconfig  eth0

eth0      Link encap:Ethernet  HWaddr 00:0C:29:41:0C:21

inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0

inet6 addr: fe80::20c:29ff:fe41:c21/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:16454 errors:0 dropped:0 overruns:0 frame:0

TX packets:15218 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:1378538 (1.3 MiB)  TX bytes:10704201 (10.2 MiB)

分发数据

数据分发时需要用到scp、rsync命令,而普通用户没有root权限,可以将普通用户加上sudo,实现root操作。

echo “tuwei  ALL=(ALL)  NOPASSWD:/usr/bin/scp,/usr/bin/rsync,/bin/tar” >>/etc/sudoers

实际生产中可以将要分发数据权限改为普通用户。

chown -R tuwei /tuwei

1.  scp -P22 -r -p /tuwei  [email protected]:~

2.  ssh -t [email protected] sudo rsync -azP tuwei /etc

普通用户对/etc是没有可写权限的,这里采用两步完成分发.可以写个通用脚本进行批量管理。

#!/bin/sh

#write by tuwei at 20170501

################get the information of other nodes

PNAME=`basename $0`

print_usage() {

echo "Usage:"

echo "/bin/sh $PNAME command"

exit 1

}

#$1  ip

if [ $# -ne 1 ]; then

print_usage

fi

for ip in `cat all_client_ips.txt|grep -v ^#`

do

echo "start ip $ip $1  --------------------------"

ssh -p 22 [email protected]$ip  $1     #########如果是分发,scp -P22 -r -p $1 [email protected]$ip:~

echo "end $ip  $1    -------------------------------"

printf "\n"

done

时间: 2024-10-16 00:43:06

ssh key密钥认证实现批量分发、管理、部署的相关文章

SSH认证原理和批量分发管理

SSH密码认证原理 几点说明: 1.服务端/etc/ssh目录下有三对公钥私钥: [[email protected] ssh]# ls moduli ssh_config sshd_config ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_key ssh_host_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub 其中,ssh_host_key和ssh_host_key.pub 用于ssh协议1版本:其

ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs 功能

ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs 第一部分:使用ssh key 实现服务器间的免密码交互登陆 步骤1: 安装openssh-clients [[email protected] ~]# yum install openssh-clients -y 步骤2: 创建用户,所有机器同时操作,可直接使用root [[email protected] ~]# useradd test #如果使用root,这里跳过 [[email protected] ~]# ec

Linux服务器集群架构部署搭建(三)NFS文件系统、SSH通道建立、批量分发管理(1)

命运是大海,当你能够畅游时,你就要纵情游向你的所爱,因为你不知道狂流什么会到来,卷走一切希望与梦想.  作者:燁未央_Estelle声明:测试学习,不足之处,欢迎指正. 第一章 NFS共享服务器的企业应用 1.1 NFS服务--静态数据存储 NFS是(Network File System)主要功能是通过网络让不同的设备端之间可以彼此共享文件或目录.NFS客户端(一般为应用服务器,如WEB)可以通过挂载(mount)方式,将NFS客户端本地系统中(就是一个挂载点)从NFS服务器端共享的数据文件目

(转)SSH批量分发管理&非交互式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

SSH批量分发管理

IT公司企业级批量分发\管理方案(分发,批量部署.执行命令.批量管理)1.中小企业最基本实用的sshkey密钥管理方案2.门户网站puppet (复杂,太重)sina3.赶集,小米SALSTACK批量管理(轻量) SSH server: 1.SSH服务 2.SFTP服务(vsftp,proftp)ssh client: 特别提醒:SSH客户端(ssh)还包含一个很有用的远程安全拷贝命令scp,也是通过ssh协议工作的. 知识小结:(openssh负责连接 openssl负责加密) 1.ssh是安

(干货)ssh服务安全优化及批量分发

一键修改ssh参数(修改端口6666.禁止root登入和空密码.加速ssh连接) sed -ir '13 iPort 6666\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no' /etc/ssh/sshd_config 查看sed -n '13,17p' /etc/ssh/sshd_config 修改结果 /etc/init.d/sshd restart 实验环境:机器6台,一台ip

批量分发、部署、管理的十种解决方案

1)secboy 2)secureCRT 3)ssh免密钥的方案 ①通过root用户直接建立密钥认证. ②普通用户建立密钥(需要时通过sudo提权操作) ③普通用户建立密钥(setuid对命令提权操作) 4)expect 5)puppet 6)cfengine 7)rsync 8)lsyncd (sersync) 9)http 方式 10)nfs 网络文件系统

Linux服务器集群架构部署搭建(三)NFS文件系统、SSH、批量分发管理、实时同步(2)

命运是大海,当你能够畅游时,你就要纵情游向你的所爱,因为你不知道狂流什么会到来,卷走一切希望与梦想. 作者:燁未央_Estelle声明:测试学习,不足之处,欢迎指正. 第四章 部署配置inotfiy+rsync实时同步 4.1 实时同步inotfiy+rsync的操作步骤 ①备份服务器[email protected]运行rsync进程作为rsync的服务端.NFS作为rsync的客户端. ②在备份服务器安装并正常启动rsync进程服务.并设置修改配置文件.实现远程拉取.推送备份. ③在客户端N

Linux ssh免密钥认证

hadoop和ansible都需要这个东西,其实很简单. 第一,在需要免秘钥登录的机器上生成公钥和私钥: ssh-keygen 第二,拷贝生成的公钥id_rsa.pub到远程机器上: ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]  #用此方式拷贝的好处是不用改名 这时再登录192.168.0.247的机器就无需密码了. [[email protected]_server ~]# ssh 192.168.0.247 Last logi