Конкретный пользовательский SSH-RSA с корневым доступом (через AWS EC2)

Возможно ли установить конкретный ключ SSH-RSA (через другого пользователя, то есть «ec2-user»), чтобы иметь возможность sudo в root.

Т.е.

  1. Вы входите в систему с ключом к «Bob» (ec2-user). В настоящее время пользователь «Bob» может sudo входить в root.

  2. «У Боба теперь есть два ключа. Можно suudo su root, нельзя.

Да. Это возможно при использовании пакета pam_ssh_agent_auth , если это предусмотрено вашим дистрибутивом. Он может позволить вам выполнить sudo на основе модуля pam, который проверяет наличие ключа ssh в ssh-agent.

Краткая история

Настроить

  1. Установить пакет pam_ssh_agent_auth из диспетчера пакетов
  2. Измените /etc/sudoers , предпочтительно используя visudo и добавьте строку

     Defaults env_keep += "SSH_AUTH_SOCK" 
  3. Измените /etc/pam.d/sudo и добавьте (как вторую строку после #%PAM-1.0 )

     auth sufficient pam_ssh_agent_auth.so file=/etc/security/authorized_keys 

    и прокомментировать строку

     #auth include system-auth 

    отключить обычную аутентификацию системы для команды sudo

  4. Создайте «привилегированную» пару ключей, которая должна иметь доступ к команде sudo и публичной части хранилища как /etc/security/authorized_keys на сервере.

     ssh-keygen -t rsa -b 2048 cat ~/.ssh/id_rsa > /etc/security/authorized_keys 

Применение

  1. На клиентском открывшемся ssh-agent и добавьте вышеупомянутый ключ:

    eval $ (ssh-agent) ssh-add ~ / .ssh / id_rsa

  2. Подключение к серверу с пересылкой агента

    Сервер ssh -K

  3. Запускайте sudo, как хотите

Это отлично работает на системах Fedora / RHEL / CentOS, из того, что я тестировал до сих пор.