В моей компании всем сотрудникам выдается закрытый ключ, который обновляется каждый год, и который они должны использовать для подключения к виртуальным машинам. У SA здесь есть марионеточный скрипт, который будет искать мой открытый ключ и сохранять его в файле ~/.ssh/authorized_keys на любой виртуальной машине, чтобы я мог к ней подключиться.

Проблема в том, что они перезаписывают файл author_keys. Это означает, что любые другие ключи, которые я добавляю в файл, также перезаписываются. Это расстраивает меня, так как мне нравится иметь возможность подключаться из ящика A к ящику B, в основном для того, чтобы я мог использовать SCP, и я не хочу помещать свой личный закрытый ключ в ящик A, поскольку это ящик, на который у нескольких пользователей есть разрешения sudo. Обычно я создаю новый ключ ssh для каждого ящика и добавляю открытый ключ этого ящика в другие ящики author_users, но марионетка продолжает стирать его.

Есть ли способ предотвратить перезапись дополнительных авторизованных ключей без изменения самих сценариев марионеток, которые я не поддерживаю?

Если это не удастся, есть ли простой способ изменить сценарии марионеток, чтобы они не перезаписывали мои дополнения, но при этом позволяли им обновлять мой открытый ключ, который я мог бы предложить SA?

Виртуальные машины - это машины Centos.

0
Jeff Schaller 13 Дек 2019 в 20:14

1 ответ

Лучший ответ

Есть ли способ предотвратить перезапись дополнительных авторизованных ключей без изменения самих сценариев марионеток, которые я не поддерживаю?

Если у вас есть административный доступ к серверу, вы можете настроить sshd для поиска авторизованных ключей в нескольких местах. От sshd_config(5):

AuthorizedKeysFile

Specifies the file that contains the public keys used for user authentication.
The format is described in the AUTHORIZED_KEYS FILE FORMAT
section of sshd(8).  Arguments to AuthorizedKeysFile accept the tokens
described in the TOKENS section.  After expansion, AuthorizedKeysFile
is taken to be an absolute path or one relative to the user's home
directory.  Multiple files may be listed, separated by whitespace.
Alternately this option may be set to none to skip checking for user
keys in files.  The default is ".ssh/authorized_keys
.ssh/authorized_keys2".

Если это не удастся, есть ли простой способ изменить сценарии марионеток, чтобы они не перезаписывали мои дополнения, но при этом позволяли им обновлять мой открытый ключ, который я мог бы предложить SA?

Это также должно быть легко. Ресурс ssh_authorized_key имеет флаг purge_ssh_keys (отключен default), который определяет, удаляет ли он неуправляемые ключи из вашего файла authorized_keys.

2
larsks 13 Дек 2019 в 20:14