LINUX用户建立秘钥认证实现SHELL脚本管理、分发和部署
四.批量部署: 这里的部署就结合了SHELL脚本批量管理和分发两个功能。 比如你要部署N台SSH服务端批量安装APACHE。 1.写好APACHE安装脚本。 2.将安装脚本分发到SSH服务端。 3.利用SHELL管理远端执行该脚本即可。 这里就不做过多演示,有机会我整理下我的LAMP文档,写个APACHE脚本,在这里演示下。 注:因为涉及风险操作。所以不推荐线上利用root用户进行批量管理操作。 建议设置普通账户,再利用sudo提权操作。 通过普通用户建立秘钥认证并sudo提权进行管理,分发,部署 (ssh server) # useradd user02 # echo "123456" | passwd --stdin user02 (ssh client) # useradd user01 # echo "123456" | passwd --stdin user01 # su - user01 # ssh-keygen -t dsa 注:默认三个回车完成创建 # ssh-copy-id -i .ssh/id_dsa.pub user02@192.168.100.29 输入密码123456,分发完毕 验证: # ssh user02@192.168.100.29 /sbin/ifconfig eth0 返回192.168.100.29端IP即表明秘钥验证成功。 分发: 注:客户端user01用户现在可以免密码分发到服务端user02所属文件夹,但若想分发到root所属文件夹,则需要sudo提权。 1.服务端sudo提权: # su - root # echo "user02 ALL=(ALL) NOPASSWD:/usr/bin/rsync,/bin/tar,/usr/bin/scp,/bin/cp" >> /etc/sudoers 登录user02账户 # su - user02 查看账户信息: # sodo -l ---------------- ............ User user02 may run the following commands on this host: (ALL) NOPASSWD: /usr/bin/rsync, (ALL) /bin/tar, (ALL) /usr/bin/scp,(ALL) /bin/cp ---------------- 2.客户端先分发到服务端user02用户家目录: # scp -P22 -r -p /home/user01/ user02@192.168.100.29:/home/user02 ----------------------------- .bash_logout 100% 18 0.0KB/s 00:00 (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |