《31-ssh-key企业级案例上级实战考试》由会员分享,可在线阅读,更多相关《31-ssh-key企业级案例上级实战考试(8页珍藏版)》请在金锄头文库上搜索。
1、ssh-key企业级案例上级实战考试考试题:ssh密钥实现批量分发备份、批量管理上级实战考试:总共8道小题1-5必答题,6-8可选题考试题1:ssh密钥实现批量分发备份、批量管理实战考试亲准备三台Linux机器分别为A、B、C,要求实现如下内容:1、 用自己的名字后面加888(如oldboy888)的用户可以完成一把钥匙开多把锁(A钥匙,B和C是锁)的免密验证登录场景,如下图所示:A- -B A- -C说明:该题在生产环境中的用途为:批量分发数据,批量发布程序代码,批量控制管理等。解答:时间:5分钟A服务器:ssh-keygen -t rsall /.sshssh-copy-id -i .ss
2、h/id_rsa.pub -p 22 oldboy888192.168.47.133ssh-copy-id -i .ssh/id_rsa.pub -p 22 oldboy888192.168.47.134ssh -p22 192.168.47.133 /sbin/ifconfig eth0ssh -p22 192.168.47.134 /sbin/ifconfig eth02、在不破坏题1的前提下,同样用自己的名字加888的用户完成多把钥匙开一把锁(B、C是钥匙,A锁)的免密码验证登录部署场景,如下图所示:B- -A C- -A时间:2分钟说明:该题方案在生产环境中用途为数据备份等,由于这个方
3、案有更好的替代方案,如rsync统一备份方案,因此,不推荐在工作中使用这个方案。这里仅仅是作为学习下思路和部署而已。解答:提示:最终实现的模板就是,1、2两个题目达到双向免密码登录,同时写出如在1、2题目中增加若200台机器是,如何继续快速部署免密码登录的过程。ssh-copy-id -i .ssh/id_rsa.pub -p 22 oldboy888192.168.47.132本步骤是A服务器本身产生锁authorized_keysll /.sshscp -P22 .ssh/id_rsa 192.168.47.133:/.ssh/ 将私钥分发给133scp -P22 .ssh/id_rsa
4、192.168.47.134:/.ssh/ 将私钥分发给134几百台时可以选择scp+expect或者用http方式3、如何实现从A指定目录批量分发文件到B、C用户的家目录(借助考题1)的部署结果)解答;时间:2分钟scp -P22 -p /data/zuma.txt .ssh/id_rsa 192.168.47.133:/.ssh/scp -P22 -p /data/zuma.txt .ssh/id_rsa 192.168.47.134:/.ssh/提示:本题主要是考察scp命令的运用4、实现从A指定目录的文件分发到B、C的任意目录下(不用root用户)解答:时间2分钟方法有:(1)执行ro
5、ot;(2)sudo授权;(3)suid授权oldboy888CHQ $ cat fenfa.sh#scp hosts to 192.168.47.133/4 by oldboy888 at 20180410scp -P22 -p hosts 192.168.47.133:ssh -p22 -t 192.168.47.133 sudo /bin/cp /etc/hosts /etc/hosts.$(date +%F)ssh -p22 -t 192.168.47.133 sudo /bin/cp /hosts /etc/ scp -P22 -p hosts 192.168.47.134:ssh
6、-p22 -t 192.168.47.134 sudo /bin/cp /etc/hosts /etc/hosts.$(date +%F)ssh -p22 -t 192.168.47.134 sudo /bin/cp /hosts /etc/oldboy888CHQ $ sh fenfa.shhosts 100% 198 0.2KB/s 00:00 Connection to 192.168.47.133 closed.Connection to 192.168.47.133 closed.hosts 100% 198 0.2KB/s 00:00 Connection to 192.168.4
7、7.134 closed.Connection to 192.168.47.134 closed.或编写shell脚本:oldboy888CHQ $ cat fenfa.sh#scp hosts to 192.168.47.133/4 by oldboy888 at 20180410#!#/bin/shfor n in 133 134do scp -P22 -p hosts 192.168.47.$n: & ssh -p22 -t 192.168.47.$n sudo /bin/cp /etc/hosts /etc/hosts.$(date +%F) &/dev/null ssh -p22 -
8、t 192.168.47.$n sudo /bin/cp /hosts /etc/ &/dev/nulldone#scp -P22 -p 192.168.47.133:#ssh -p22 -t 192.168.47.133 sudo /bin/cp /etc/hosts /etc/hosts.$(date +%F)#$ssh -p22 -t 192.168.47.133 sudo /bin/cp /hosts /etc/ #scp -P22 -p hosts 192.168.47.134:#ssh -p22 -t 192.168.47.134 sudo /bin/cp /etc/hosts /
9、etc/hosts.$(date +%F)#ssh -p22 -t 192.168.47.134 sudo /bin/cp /hosts /etc/5、如何快速查看所有机器的负载load、CPU、内存等信息(借助考题1)的部署结果)(思考:如果服务器数量多,如何并发查看和分发数据)解答:时间:5分钟ssh -p22 oldboy192.168.47.133 /sbin/ifconfig|grep 192.168ssh -p22 oldboy192.168.47.134 /sbin/ifconfig|grep 192.168oldboy888CHQ $ ssh -p22 192.168.47.1
10、33 uname -r 2.6.32-504.el6.x86_646、附加题:实现每分钟定时分发hosts文件到所有的机器上,并把分发失败,把没有分发成功的机器信息以邮件的形式发给运维人员。解答:时间5分钟发邮件2种常见方法:(1)mail -s “标题” 邮件地址 文件如:mail -s “oldboy”978668580 /dev/null & ssh -p22 -t 192.168.47.$n sudo cp /$1 $2 &/dev/null if $? -eq 0 then action 192.168.47.$n exec is ok /bin/true else atction
11、192.168.47.$n exec is NG /bin/false echo 192.168.47.$n exec is NG|mail -s 192.168.47.$n exec is NG 978668580 fidoneoldboy888CHQ $ /bin/sh /home/oldboy888/fenfa6.sh /home/oldboy888/hosts /etc/hosts 100% 198 0.2KB/s 00:00 hosts 100% 198 0.2KB/s 00:007、附加题:实现每天晚上00点定时把B、C上的数据备份到A上,并把备份结果信息以邮件的形式发给运维人员。
12、解答:时间5分钟oldboy888hxw $ mkdir dataoldboy888hxw $ echo I am a student now oldboy.txtoldboy888hxw $ cp oldboy.txt hosts data/oldboy888hxw $ /sbin/ifconfig eth0|sed -nr s#.*dr:(.*) Bc.*$#1#gp 192.168.47.133oldboy888hxw $ scp -rp -P22 data/ 192.168.47.132:/data_$(/sbin/ifconfig eth0|sed -nr s#.*dr:(.*) Bc.*$#1#gp) oldboy.txt 100% 19 0.0KB/s 00:00 hosts 100% 198 0.2KB/s 00:00 同理,在134机器上执行该命令:mkdir dataecho I am a student now oldboy.txtcp oldboy.txt hosts data/sbin/ifconfig eth0|sed -nr s#.*dr:(.*) Bc.*$#1#gpscp -rp -P22 data/ 192.168.47.132:/data_$(/sbin/ifconfig eth0|sed -