Как использовать ssh_import_id с cloud-init на Raspberry Pi 4 / w Ubuntu 20.04 Server?

Я хочу автоматически настроить свои SSH-ключи на свежем Ubuntu Server 20.04, установленном на Raspberry Pi 4 - в основном в качестве обучающего упражнения. Я пытаюсь использовать параметр ssh_import_id в cloud-init , чтобы извлечь мой открытый ключ SSH из моей учетной записи GitHub и добавить его в ~ / .ssh / authorized_keys для пользователя pi .

Кажется, мне не удается запустить конфигурацию ssh_import_id . Каталог ~ / .ssh никогда не создается для пользователя pi , и есть нет журналов, связанных с извлечением ключа из GitHub / ssh_import_id в /var/logs/cloud-init.log или /var/log/cloud-init-output.log .

Текущее содержимое моих пользовательских данных в корне SD-карты:

  - name: pi
    groups: [sudo]
    sudo: ALL=(ALL) NOPASSWD:ALL
    ssh_import_id: # import public key from github
      - gh:my_cool_github_account
    lock_passwd: true # disable password login

Все работает нормально, если я ввожу открытый ключ вручную с помощью ssh_authorized_keys , что подойдет мой рабочий процесс, но я надеюсь получить настройку GitHub, так как это шикарно.

Мое понимание cloud-init определенно базовое, так что, возможно, я что-то упустил.Я инициирую изменения, запустив cloud-init clean , а затем cloud-init init , который, похоже, работает нормально, поскольку он переделывает пользователей / общие биты / корневые ключи ssh и отпечаток пальца. .

Предположительно, я также использую источник данных NoCloud .

Может ли кто-нибудь помочь мне понять, что я делаю не так?

1
задан 8 August 2021 в 13:02

1 ответ

Это только фрагмент ваших пользовательских данных? Если нет, то вам также нужен заголовок #cloud-config и users:. Должно сработать что-то вроде этого:

#cloud-config
users:
  - name: pi
    groups: [sudo]
    sudo: ALL=(ALL) NOPASSWD:ALL
    ssh_import_id:
      - gh:torvalds
    lock_passwd: true

Я только что протестировал и нашел ключ в /home/pi/.ssh/authorized_keys. Вы уверены, что у пользователя github, которого вы пытаетесь импортировать, ключи находятся по адресу https://github.com/settings/keys?

/var/log/cloud-init.log содержит:

2021-08-09 13:56:24,302 - helpers.py[DEBUG]: Running config-ssh-import-id using lock (<FileLock using file '/var/lib/cloud/instances/me/sem/config_ssh_import_id'>)
2021-08-09 13:56:24,302 - cc_ssh_import_id.py[DEBUG]: Importing SSH ids for user pi.
2021-08-09 13:56:24,302 - subp.py[DEBUG]: Running command ['sudo', '-Hu', 'pi', 'ssh-import-id', 'gh:torvalds'] with allowed return codes [0] (shell=False, capture=False)
1
ответ дан 20 August 2021 в 10:28

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

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