用盐为非root用户生成ssh密钥

我需要为用户生成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用户运行命令?

  • SSH中止身份validation失败太多
  • 基于密钥的SSH权限被拒绝(publickey)Ubuntu 12-04
  • 在Jenkins Master上创buildSSH密钥 - Centos Yum Install
  • 不允许ssh密钥没有密码短语
  • 如何更改Google云上的SSH密钥?
  • AWS连接错误:权限被拒绝(公钥)
  • One Solution collect form web for “用盐为非root用户生成ssh密钥”

    使用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

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.