centos服务器集群配置免密登录和文件传输
1.免密登录 (哪個用戶配置哪個用戶生效)
1. ssh-keygen -t ras # 连续回车三次得到生成的公钥私钥(文件夹 .ssh)
=======================================
注:
known_hosts 记录ssh访问过计算机的公钥(public key)
id_rsa 生成的私钥
id_rsa.pub 生成的公钥
authorized_keys 存放授权过得无密登录服务器公钥
===========================================
2. ssh-copy-id 免密登录机器IP # 将公钥发送至免密登录的机器上
============================================
为了能够实现互相免密登录的效果可以 先将自己公钥发给自己
然后将 .ssh文件夹分发给集群所有的机器 ==这就等同于机器A ssh 机器B 时 机器A采用这个私钥加密发送数据给机器B 机器B采用authorized_keys中存放的机器A公钥解密,实现免密登录。
==============================================
3. xsync /home/atguigu/.ssh 将 .ssh文件夹分发给集群所有的机器
2. 群发文件脚本
1.脚本内容
(1) vim xsync 新增文件
(2)chomd +x xsync 授权文件执行权限
(3)cp xsync /bin/ 将文件拷贝至 /bin 可直接全路径调用
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if ((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环 --TODO 待修改成自己的集群机器
for((host=103; host<105; host++)); do
echo ------------------- hadoop$host --------------
rsync -av $pdir/$fname $user@hadoop$host:$pdir
done