Как заменить /root/.ssh/authorized_keys облачной конфигурацией на EC2?

При развертывании нового экземпляра EC2 необходимо выбрать ключ SSH, чтобы предоставить доступ к машине. Я хотел бы использовать только авторизованные ключи, указанные в пользовательских данных для экземпляра. Это возможно? Я пытался использовать оба ssh-authorized-keys:

users:
  - name: user
    ssh-authorized-keys:
      - ssh-rsa [...] my_key

а также write_files:

write_files:
  - content: |
        ssh-rsa [...] my_key
    path: /home/user/.ssh/authorized_keys

, но в обоих случаях оригинальный ключ добавляется в /root/.ssh/authorized_keys автоматически. Нужно ли отключить root войти, чтобы отключить этот ключ навсегда?

2 ответа

Решение

Пользователь ec2-user | centos | ubuntu... является default_user, как определено в /etc/cloud/*.cfg

Вот как пропустить это поведение default_user и настроить другого пользователя по данным пользователя:

#cloud-config
system_info:
  default_user: ~
users:
- name: myname
  sudo: ALL=(ALL) NOPASSWD:ALL
  ssh-authorized-keys:
  - ssh-rsa AAAA[...]O1 myname@myhost

Обратите внимание, что пара ключей, выбранная в консоли AWS / api, игнорируется.

Если вы запускаете экземпляр с веб-консоли AWS, вы можете выбрать запуск без ключа на последнем этапе. Таким образом, только открытый ключ, указанный вами в cloud-config, будет введен в экземпляр.

Выбор пары ключей

Другие вопросы по тегам