Я хочу автоматически настроить свои 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
.
Может ли кто-нибудь помочь мне понять, что я делаю не так?
Это только фрагмент ваших пользовательских данных? Если нет, то вам также нужен заголовок #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)