Назад | Перейти на главную страницу

создание ssh-ключей для пользователя без полномочий root с помощью соли

Мне нужно сгенерировать ssh-ключи (публичная / приватная пара) для пользователя, скажем, Хелен. Этот пользователь уже есть во всех моих соляных миньонах. Как мне сгенерировать ssh-ключи для этого пользователя из моего мастера соли?

Для пользователя root я сгенерировал ключи с помощью этой команды, и она отлично работала:

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

Я могу выполнить следующую команду, которая может сгенерировать ssh-ключи для helen; но разрешения и владельцы будут другими; поэтому необходимо снова ввести команды, чтобы исправить разрешения и владения:

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