Как сгенерировать ключи SSH до того, как демон ssh сделает это впервые [closed]

Мне нужно настроить raspberry pi таким образом, чтобы я знал его отпечатки ssh перед первой загрузкой, поэтому единственный способ - сгенерировать ключи на SD-карте на моем компьютере и получить отпечатки пальцев. Я сделал это, но когда raspberry загружается, он создает новые ключи поверх тех, которые я сгенерировал. Как запретить демону ssh сделать это? Это определенно где-то читается, если это первая загрузка, это должен быть способ это изменить.

РЕДАКТИРОВАТЬ:

Мой сценарий помещает сгенерированные файлы ssh в / etc / ssh. При первой загрузке это журнал /var/log/daemon.log для службы sh:

Sep  7 16:12:31 raspberrypi sh[297]: removed '/etc/ssh/ssh_host_dsa_key'
Sep  7 16:12:31 raspberrypi sh[297]: removed '/etc/ssh/ssh_host_dsa_key.pub'
Sep  7 16:12:31 raspberrypi sh[297]: removed '/etc/ssh/ssh_host_ecdsa_key'
Sep  7 16:12:31 raspberrypi sh[297]: removed '/etc/ssh/ssh_host_ecdsa_key.pub'
Sep  7 16:12:31 raspberrypi sh[297]: removed '/etc/ssh/ssh_host_rsa_key'
Sep  7 16:12:31 raspberrypi sh[297]: removed '/etc/ssh/ssh_host_rsa_key.pub'

Он каким-то образом знает, что эти ключи не были сгенерированы службой SSH. Обратите внимание, что я не создавал ssh_host_ed25519_key.Не в этом ли причина? Но я закомментировал его строку в sshd_config :

# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

Может ли это быть причиной того, что он обнаружил и удалил ключи?

РЕДАКТИРОВАТЬ 2:

Я добавил ключ ed25519 с предыдущей загруженной SD-карты, и он все равно удалил все ключи:

Sep  7 16:12:32 raspberrypi sh[311]: removed '/etc/ssh/ssh_host_dsa_key'
Sep  7 16:12:33 raspberrypi sh[311]: removed '/etc/ssh/ssh_host_dsa_key.pub'
Sep  7 16:12:33 raspberrypi sh[311]: removed '/etc/ssh/ssh_host_ecdsa_key'
Sep  7 16:12:33 raspberrypi sh[311]: removed '/etc/ssh/ssh_host_ecdsa_key.pub'
Sep  7 16:12:33 raspberrypi sh[311]: removed '/etc/ssh/ssh_host_ed25519_key'
Sep  7 16:12:33 raspberrypi sh[311]: removed '/etc/ssh/ssh_host_ed25519_key.pub'
Sep  7 16:12:33 raspberrypi sh[311]: removed '/etc/ssh/ssh_host_rsa_key'
Sep  7 16:12:33 raspberrypi sh[311]: removed '/etc/ssh/ssh_host_rsa_key.pub'

Я также заметил, что забыл добавить соответствующие разрешения для каждого файла, но сделал это в эта последняя попытка и все еще ничего. Я сделал 600 для закрытых ключей и 644 для открытых ключей, как и sshd , когда он генерирует новые

EDIT 3:

Я попытался найти «удалено» в источнике github, чтобы узнать, смогу ли я найти фрагмент кода, который инициировал удаление ключа, но не смог его найти: https://github.com/openssh/openssh-portable / search? utf8 =% E2% 9C% 93 & q = удалено & type =

1
задан 6 October 2017 в 02:08

1 ответ

Raspbian имеет сервис в изображении, названном regenerate_ssh_host_keys.

[Unit]
Description=Regenerate SSH host keys
Before=ssh.service

[Service]
Type=oneshot
ExecStartPre=-/bin/dd if=/dev/hwrng of=/dev/urandom count=1 bs=4096
ExecStartPre=-/bin/sh -c "/bin/rm -f -v /etc/ssh/ssh_host_*_key*"
ExecStart=/usr/bin/ssh-keygen -A -v
ExecStartPost=/bin/systemctl disable regenerate_ssh_host_keys

[Install]
WantedBy=multi-user.target

Это удаляет любые ключи, уже представляют, затем повторно создает ключи, затем отключает сервис, таким образом, он не работает снова. Можно отключить тот сервис (путем удаления /etc/systemd/system/multi-user.target.wants/regenerate_ssh_host_keys.service файл) одновременно, Вы устанавливаете ключи.

1
ответ дан 7 December 2019 в 15:29

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

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