web-dev-qa-db-ja.com

ソルトを使用してroot以外のユーザーのsshキーを生成する

ユーザーがhelenと言うためにssh-keys(パブリック/プライベートペア)を生成する必要があります。このユーザーはすでに私のすべてのソルトミニオンにいます。ソルトマスターからこのユーザーのsshキーを生成するにはどうすればよいですか?

Rootユーザーの場合、このコマンドを使用してキーを生成しましたが、正常に機能しました。

salt '*application-server-*' cmd.run "ssh-keygen -q -N '' -f /root/.ssh/id_rsa"

Helenのsshキーを生成できる次のコマンドを発行できます。ただし、権限と所有権は異なります。したがって、権限と所有権を修正するには、コマンドを再度発行する必要があります。

salt '*application-server-*' cmd.run "ssh-keygen -q -N '' -f /home/helen/.ssh/id_rsa"

このコマンドをrootではなくユーザーhelenとして実行する方法はありますか?

一般に、root以外のユーザーとしてコマンドを実行する方法はありますか?

2
Ajo Augustine

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