一、需求分析:

要求所有服务器在同一个用户oldboy1系统用户下,实现A机器从本地分发数据到B\C机器上,在分发过程中不需要B\C的提示系统密码验证,除了分发功能,还需要可以批量查看客户上的cpu、load、men,系统版本等使用信息。

即实现从A服务器发布数据到B\C客户端服务器或者查看信息的免密登陆验证。

二十五、SSH服务企业级应用场景-LMLPHP

1.增加用户,在三台机器上都进行增加oldboy1用户和密码。

1)useradd oldboy1

2)id  oldboy1

3)echo 123456| passwd --stdin  oldboy1

2.选择A-server创建密钥

ssh-keygen   -t   dsa/rsa

二十五、SSH服务企业级应用场景-LMLPHP

id_dsa.pub就是要传给B\C的公钥,文件权限是644,目录权限是700

3.分发密钥到其他每一个机器上:

ssh-copy-id   -i   .ssh/id_dsa.pub  "-p22 [email protected]"

二十五、SSH服务企业级应用场景-LMLPHP

其实 ssh-copy-id原理就是把公钥.ssh/id_dsa.pub复制到对应的oldboy1下面并且名命为authorized_keys,目录权限是700,但是文件权限为600

二十五、SSH服务企业级应用场景-LMLPHP

4.进行脚本编写,进行服务器文件的分发:(脚本和分发)

二十五、SSH服务企业级应用场景-LMLPHP

一般我们在进行分发的话,都不会用root进行,那么相对安全的有两种方法:

1)用sudo  -t

例子:ssh -P52113 -t [email protected]  sudo  /bin/cp   ~/file/etc

2)  用 suid

例子:chmod  4755 "which  rsync"

ssh 批量分发与管理方案小结:

1.利用root做ssh key验证。

优点:简单、易用

缺点:安全查,同时无法禁用root远程连接

企业80%

2.利用普通用户如oldboy1来做,思路是先把分发的文件拷贝到服务请求用户家目录,然后sudo提权拷贝到服务器的对用权限目录

优点:安全

缺点:配置复杂

3.拓展:同方案2,只是不用sudo,而是设置suid对固定命令授权

优点:相对安全

缺点:复杂,安全性较差。任何人都可以用suid命令

私钥永远是发送端的。

05-27 08:35