如何在安装过程中为每个服务器的用户创建ssh私钥和公钥,然后为不同服务器上的不同用户添加新创建的公钥?
例如:
服务器1
服务器2
我知道如何创建密钥(公共的、私有的),但是如何在服务器、两个或更多服务器之间交换这些密钥呢?
发布于 2015-09-16 16:51:43
如果查看文档,就会发现ssh_auth.present状态。auth.present
为了动态填充授权密钥,我使用支柱数据作为真相的来源。为了确保用户和他或她的公钥位于适当的服务器上,我将使用salt状态,如下例所示:
cat /srv/salt/server_users.sls
{% set users = pillar.get('server_users') %}
{% for user in users %}
{{ user }}_setup:
user.present
{{ user }}_sshkey:
ssh_auth.present:
- source: salt://pubkeys/{{ user }}.pub
- user: {{ user }}
{% endfor }}然后,我将所有用户的公钥放到/srv/salt/pubkeys/目录中。
此时,我设置了平面文件柱或外部支柱,它将为每个服务器提供一个server_users的柱状键,其值是我希望在该特定服务器上存在并部署ssh密钥的用户列表。
一个平面文件柱的例子应该是这样的。
cat /srv/支柱/top.sls
base:
'server01':
- users.server01
'server02':
- users.server02cat /srv/支柱/用户/server01.sls
server_users:
- sarah
- joe
- kari
- kanchancat /srv/支柱/用户/server02.sls
server_users:
- kanchan
- john
- sumit因此,在本例中,kanchan可以访问这两个服务器,而其他用户只能访问其中一个服务器。
https://stackoverflow.com/questions/32568714
复制相似问题