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

一、需求分析:

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

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

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

    1)useradd oldboy1

    2)id  oldboy1

    3)echo 123456| passwd --stdin  oldboy1

  2.选择A-server创建密钥

      ssh-keygen   -t   dsa/rsa

 

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

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

   ssh-copy-id   -i   .ssh/id_dsa.pub  "-p22 oldboy1@192.168.0.102"

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

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

 

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

  1)用sudo  -t

 例子:ssh -P52113 -t oldboy1@192.168.0.102  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命令

 私钥永远是发送端的。

posted @ 2019-06-08 15:21  小熊尤里  阅读(270)  评论(0编辑  收藏  举报