接上篇:https://developer.aliyun.com/article/1621587?spm=a2c6h.13148508.setting.16.49764f0eTUci5Z
开启ROOT
如果你的账户不是ROOT,那你需要过一下这章节。
如果你是ROOT,那请略过!!!
ROOT密码
sudo passwd root
输入密码,两次确认。
开启SSH
sudo vim /etc/ssh/sshd_config
编辑如下内容,请确保都有:
PasswordAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys PermitRootLogin yes
退出保存,重启SSH服务
sudo systemctl restart ssh
SSH Key
生成SSH秘钥
# 121机器上 ssh-keygen -t rsa -b 4096 -C "h121.wzk.icu" # 122机器上 ssh-keygen -t rsa -b 4096 -C "h122.wzk.icu" # 123机器上 ssh-keygen -t rsa -b 4096 -C "h123.wzk.icu"
一路回车就可以,什么都不需要设置。
免密登录
配置免密
需要在三台机器上,都执行一次如下的命令。
ssh-copy-id root@h121.wzk.icu ssh-copy-id root@h122.wzk.icu ssh-copy-id root@h123.wzk.icu
此时会要求你输入登录机器的密码,输入即可。
测试免密
ssh h122.wzk.icu
如果是可以正常登录,那表示你已经成功配置,恭喜你!
查看免密
所有免密的 Key 都会放在这里:
~/.ssh/authorized_keys
移除免密
对当中的内容编辑即可,删除对应的,免密就会失效。
vim ~/.ssh/authorized_keys
分发脚本
安装工具
这里选择使用 rsync
sudo apt install rsync
编写脚本
在 /usr/local/bin
下的命令 可以全局执行
cd /usr/local/bin sudo vim rsync-script
写入如下内容,你可能需要稍稍做一些修改,修改成你的,仅供参考:
#!/bin/bash #1 获取命令输入参数的个数,如果个数为0,直接退出命令 paramnum=$# if((paramnum==0));then echo no params; exit; fi #2 根据传入参数获取文件名称 p1=$1 file_name=`basename $p1` echo fname=$file_name #3 获取输入参数的绝对路径 pdir=`cd -P $(dirname $p1); pwd` echo pdir=$pdir #4 获取用户名称 user=`whoami` #5 循环执行rsync for((host=121; host<124; host++)); do echo ------------------- h$host.wzk.icu -------------- rsync -rvl $pdir/$file_name $user@h$host.wzk.icu:$pdir done
执行权限
sudo chmod 777 rsync-script • 1
测试脚本
写了一个文本文件,测试脚本是否正常。
1.txt helloworld! • 1 • 2
执行脚本:
rsync-script /opt/wzk • 1