ssh-copy-id без пароля для пользователя `postgres`

У меня есть N хостов, на которых я могу выполнить вход без пароля через ssh для пользователя root .

Для этих машин мне нравится добавлять ssh-pub -key к авторизованным_ключам пользователя postgres .

Цель: я хочу также войти в систему без пароля для пользователя postgres .

AFAIK инструмент ssh-copy-id здесь не помогает, так как я хочу, чтобы действие «добавить ssh-pub-key в postgres пользователя» было без пароля.

Как решить эту проблему?

2
задан 6 June 2016 в 17:38
3 ответа

Ну, если вы можете войти без пароля от имени root, вы можете сделать что-нибудь вроде этого, я думаю:

scp pub_key root@<host>:
ssh root@<host> 'mkdir -p ~postgres/.ssh; cat pub_key >> ~postgres/.ssh/authorized_keys; chown -R postgres.postgres ~postgres/.ssh; chmod 644 ~postgres/.ssh/authorized_keys; chmod 700 ~postgres/.ssh; rm -f pub_key'

что сначала скопирует публичный ключ (снова) на удаленный хост, затем добавит этот файл к ключам authorized_keys пользователя postgres и убедится, что у него есть правильные права доступа. Он также убедится, что каталог postgres/.ssh существует и имеет права собственности/разрешения

.
0
ответ дан 3 December 2019 в 12:40

Можно сделать что-то вроде:

для f в list_of_servers; do ssh root@${f} "mkdir -p ~postgres/.ssh; echo $KEY >> ~postgres/.ssh/authorized_keys; chown -R postgres:postgres ~postgres/. ssh; chmod 400 ~postgres/.ssh/authorized_keys; chmod 700 ~postgres/.ssh"; done

или если вы используете эти машины в автоматизации, используя что-то вроде куклы или соли, это будет тривиально

.
0
ответ дан 3 December 2019 в 12:40

Есть много похожих способов:

ssh root@SomeHost 'tar cpBf - . ssh/authorized_keys | sudo -iu postgres tar xpBf -'

на самом деле, эта самая команда копирует пользователю postgres все авторизованные ключи root, но обычно с этим нет проблем, так как доступ root всегда выше, а это значит, что любой пользователь с правами root может получить доступ к учётной записи postgres в любом случае.

1
ответ дан 3 December 2019 в 12:40

Теги

Похожие вопросы