Я пытаюсь преодолеть некоторые ограничения в нашей среде, чтобы написать авторизованный файл SSH для ключей ssh без пароля.
Мне нужно выполнить ssh как целевую систему, а затем запустить "sudo su -
, а затем обновите сервисный аккаунт authorized_keys с помощью ключа "
В конечном итоге это должно быть включено в мои скрипты ansible.
Я использую "ssh -t user@target
"sudo su - service-user
"- что на самом деле успешно вводит меня в оболочку для пользователя службы. Но я не могу придумать способ передать команды изменения файла с помощью приведенных выше.
Есть какие-нибудь советы или альтернативные варианты?
Примечание: мне нужно использовать "ssh -t
", так как requiretty не установлен в целевых системах.
Ура!
Предполагая, что вы хотите перезаписать файл authorized_keys сервисного пользователя полностью новой версией, вы можете сделать что-то вроде этого:
cat master_authorized_keys |
ssh -t user@target \
"sudo -u service-user tee ~/.ssh/authorized_keys >/dev/null"
Я не знаю, если -t
это действительно необходимо, но, возможно, это в вашем окружении.