我需要为用户生成ssh-keys(公共/私有对)。 这个用户已经在我所有的盐族中。 如何从我的盐大师为这个用户生成ssh密钥?
对于root用户,我使用这个命令生成密钥,它工作正常:
salt '*application-server-*' cmd.run "ssh-keygen -q -N '' -f /root/.ssh/id_rsa"
我可以发出下面的命令,可以为helen生成ssh-keys; 但是权限和所有权会有所不同; 所以需要再次发出命令来更正权限和所有权:
salt '*application-server-*' cmd.run "ssh-keygen -q -N '' -f /home/helen/.ssh/id_rsa"
有没有任何方法可以用盐作为用户helen而不是root来运行这个命令?
一般来说,有没有一种方法可以让盐作为非root用户运行命令?
salt命令 salt '*application-server-*' cmd.run \ "ssh-keygen -q -N '' -f /home/helen/.ssh/id_rsa" \ runas=helen
http://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.cmdmod.html#salt.modules.cmdmod.run
您可以在使用cmd状态时指定用户,方法是将runas设置为用户名,以运行命令:
generate_ssh_key_helen: cmd.run: - name: ssh-keygen -q -N '' -f /home/helen/.ssh/id_rsa - runas: helen - unless: test -f /home/helen/.ssh/id_rsa
http://docs.saltstack.com/en/latest/ref/states/all/salt.states.cmd.html#salt.states.cmd.run