saltstack的服务端和客户端通信需要建立一个安全通道,传输过程需要加密,所以得配置认证,也是通过密钥对来加密解密的,说白了就是配置个密钥认证。minion在第一次启动时会在/etc/salt/pki/minion/下生成minion.pem和minion.pub,其中.pub为公钥,我们需要把公钥传输给master。
[root@client ~]# ls /etc/salt/pki/minion/
minion.pem minion.pub
master第一次启动时也会在/etc/salt/pki/master下生成密钥对,当master通过salt-key工具接收到minion传过来的公钥后,就会在/etc/salt/pki/master/minions/目录里存放刚刚接受的公钥,同时客户端也会接收master传过去的公钥,把它放在/etc/salt/pki/minion目录下,并命名为minion_master.pub。
[root@server ~]# ls /etc/salt/pki/master
master.pem master.pub minions minions_autosign minions_denied minions_pre minions_rejected
借助salt-key工具来实现认证:
[root@server ~]# salt-key -a client
The following keys are going to be accepted:
Unaccepted Keys:
client
Proceed? [n/Y] y
Key for minion client accepted.
[root@server ~]# ls /etc/salt/pki/master/minions # 接收的公钥会存放在这个目录下
client
客户端也会接收到服务端传过去的公钥:
[root@client ~]# ls /etc/salt/pki/minion #没有此文件???
minion_master.pub minion.pem minion.pub
-A可以认证所有在Unaccepted Keys下的客户端:
[root@server ~]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
server
Proceed? [n/Y] y
Key for minion server accepted.
这时候就都认证成功了,直接执行salt-key命令可以查看所有状态下的主机(客户端):
salt-key命令用法:
- -a 后面跟主机名,认证指定主机
- -A 认证所有主机
- -r 跟主机名,拒绝指定主机
- -R 拒绝所有主机
- -d 跟主机名,删除指定主机认证
- -D 删除全部主机认证
- -y 省略掉交互,相当于直接按了y