Я в основном хочу делать то, что описано в этот вопрос serverfault, поэтому я хочу, чтобы группа людей («администраторы») могла входить на многие скрытые серверы с ssh
используя jumpbox, в котором хранятся закрытые ключи для скрытых серверов.
По мере обновления authorized_keys
на скрытых серверах довольно дорого, я хочу только контролировать доступ к ним, изменяя переход, то есть добавлять или удалять «администраторов», изменяя authorized_keys
файл на Jumpbox.
Чего я особенно не хочу, так это утечки секретных ключей, хранящихся в jumpbox, администраторам, поэтому подход ssh-agent + ProxyCommand, упомянутый в ответах на связанный вопрос, не будет работать, потому что агент отправит закрытые ключи из jumpbox в "админы", если я правильно понимаю.
Напротив, просто выполняя
ssh -tt jumpbox ssh hidden_server_1
имеет тот недостаток, что "админы" не могут использовать scp
и перенаправление портов легко.
NB: Доступ оболочки к Jumpbox должен быть отключен для «администраторов» с помощью специального сценария в качестве оболочки входа в систему, которая позволяет только необходимые команды.
Есть ли безопасный и удобный способ сохранить комфорт scp
и переадресация портов без ослабления ограничений безопасности?
Спасибо большое за помощь!
Невозможно «использовать» закрытый ключ, не имея возможности прочитать - и, следовательно, скопировать - этот закрытый ключ. Таким образом, идея о том, что ваши администраторы могут войти в Jumpbox, а затем использовать закрытый ключ, к которому они не могут получить прямой доступ, не сработает.
Но вы можете сделать так, чтобы закрытые ключи могли только использоваться из джампбокса (см. man sshd
, from=
в ФОРМАТЕ ФАЙЛА AUTHORIZED_KEYS). Затем, запрещая данному администратору доступ к Jumpbox, у него или у нее остаются ключи, которые больше не используются.
Удовлетворяет ли это вашим ограничениям безопасности?
Обратите внимание, что вы пишете так, как если бы все удаленные администраторы имели доступ к общей учетной записи на Jumpbox. Если бы это была моя система, я бы этого не сделал; Я бы хотел, чтобы у каждого удаленного администратора была отдельная учетная запись на Jumpbox, и все такие учетные записи имели доступ к соответствующей связанной паре новых ключей или ее копии. Это значительно упрощает и повышает надежность отмены доступа отдельного администратора к Jumpbox.