IT公司企业级批量分发\管理方案:
1. 中小企业最基本使用的SSHKEY密钥的方案。
2. 门户网站PUPPET(复杂),大型企业所需
3. SALTSTACK批量管理(轻量)
运维原则:简单、易用、高效
免密码登录原理:
请求者拥有自己生成的公钥和私钥,公钥分发到各个客户端上,当请求者连接这些客户端的时候实现免密码登录。
密钥分类:DSA和RSA密钥
在nfs-server输入ssh-keygen –t dsa,一路回车生成密钥对
查看~/.ssh目录
Id_dsa是私钥 id_dsa.pub是公钥
公钥复制:
如果数目不大直接用下面的命令就可满足,如果是上百台建议使用expect
ssh-copy-id -i id_dsa.pub oldgirl@192.168.24.21
默认会使用ssh的端口22去传输,如果有修改过可以添加-p 端口 去指定,例如:
可以通过这个实现免密传输文件等执行一些脚本
通过循环执行相同的事情:
其中执行命令sh fenfa.sh hosts中hosts这个赋值到$1内去
添加,如果没参数($#)报出错误提示。
若参数$#个数少于1,则提示,其中$0代表脚本名称
实现效果
1.利用root做ssh key验证
优点:简单,易用
缺点:安全差,同时无法禁止root远程连接这个功能。
企业应用:80%的中小企业。
2.利用普通用户如oldgirl来做
思路是先把文件拷贝到服务器用户家目录,然后sudo提权拷贝分发的文件到对应权限目录。
优点:安全。无需停止root远程连接这个功能。
缺点:配置麻烦
3.跟方案2一样,只是不用sudo,而是设置suid对固定命令授权
优点:相对安全
缺点:复杂,安全性较差。任何人都可以处理带有suid权限的命令。
追求简单,选1
追求安全,选2
相同功能相对高级的:puppet,saltstack。
#!/bin/sh
. /etc/init.d/functions
if [ $# -ne 2 ]
then
echo "USAGE:$0 LOCALFILE REMOTEFILE"
exit 1
fi
for n in 21 25 32
do
scp -P22 -r $1 oldgirl@192.168.24.$n:~ &>/dev/null &&
ssh -t oldgirl@192.168.24.$n sudo rsync $1 $2 &>/dev/null
if [ $? -eq 0 ]
then
action "fenfa $1 ok" /bin/true
else
action "fenfa $1 ok" /bin/false
fi
done
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。