Я переустанавливаю свой рабочий стол Linux, как мне поддерживать работу SSH логинов?

15

Давным-давно я сгенерировал пару ключей с помощью ssh-keygenи использовал ssh-copy-idвход в систему на многих виртуальных машинах разработки, не вводя пароль вручную. Я также загрузил свой открытый ключ на GitHub, GitLab и аналогичные для аутентификации в git-репозиториях, использующих git@вместо https://.

Как я могу переустановить свой рабочий стол Linux и сохранить все эти логины в работе? ~/.ssh/Достаточно ли резервного копирования и восстановления ?

Повар Тони
источник
2
Это одна из многих причин, по которой при установке новой среды Linux у вас должен быть раздел для, /а другой для/home
olegario
4
@ olegario Я не согласен. Я использовал Linux для лучшей части своей жизни и в настоящее время администрирую> 100 машин, но я всегда находил отдельный /homeраздел, как хлопот, так и ограниченного использования. Я понимаю, что некоторые люди находят это полезным, и это нормально, но я все равно не думаю, что это адекватная помощь для ситуации с ОП.
Marcelm
5
В действительности раздел не имеет преимуществ перед простым резервным копированием и восстановлением с /homeпомощью tarкаких-либо других средств, если только вы не планируете повторно использовать существующие разделы, что в любом случае сопряжено с риском для большинства установщиков ОС, которые удачно их удалят, если только вы не находитесь на отдельном физическом диске. удалить во время установки.
R .. GitHub ОСТАНОВИТЬСЯ, ПОМОГАЯ ЛЬДУ
1
Как только вы закончите переустановку, независимо от того, как именно вы это сделаете, вы можете захотеть пересмотреть только одну пару ключей для всего.
CVn

Ответы:

29

Вам нужно сделать резервную копию ваших личных ключей, как минимум. Они не могут быть восстановлены без замены вашего открытого ключа везде. Обычно они имеют имя, начинающееся с id_и не имеющее расширения.

Открытые ключи могут быть восстановлены с помощью этой команды: ssh-keygen -y -f path/to/private/key. Ваша пользовательская конфигурация (файл с именем «config») также может быть полезна, если вы установили не стандартные значения.

Все эти файлы обычно находятся в ~ / .ssh, но сначала проверьте!

l0b0
источник
28

Для исходящих соединений SSH достаточно резервного копирования пары ключей. Для удобства вы можете просто сделать резервную копию вашего ~/.sshкаталога и восстановить его в новой установке.

Обычно резервного копирования и восстановления этого каталога достаточно, но можно хранить ключи в другом месте, используя пользовательские настройки в ~/.ssh/configили /etc/ssh/ssh_config, или используя SSH-агент, и ssh-addподбирая ключи, которые будут использоваться в исходящих соединениях, из произвольного местоположения. ,

Если у вас есть входящие SSH-соединения, вы можете также рассмотреть возможность резервного копирования ключей хоста SSH по адресу /etc/ssh/ssh_host_*. Если вы не сделаете их резервную копию, новые ключи хоста будут автоматически сгенерированы при sshdпервом запуске новой установки, и на всех входящих SSH-подключениях будет отображаться «Несоответствие ключа хоста SSH, возможно, кто-то что-то делает плохо!» сообщение об ошибке и обычно отклоняет соединение, если кто-то не удаляет старый ключ хоста на SSH-клиенте и явно не принимает новый.

Похоже, у вас может не быть входящих SSH-соединений в вашей настольной системе Linux, поэтому я упомяну это только для полноты картины. Но в серверных системах или если у вас настроена значительная автоматизация на основе SSH, подтверждение изменения ключа хоста может стать серьезной проблемой.

Телком
источник
1
+1 Это должен быть принятый ответ. Чтобы войти с других компьютеров, вы должны сохранить ключ хоста, который обычно хранится в /etc/sshфайле с именами файлов ssh_host_*(несколько файлов для разных алгоритмов).
rexkogitans
2
Обратите внимание , что если вы SSHing в , вы можете вращать хост - ключей в любом случае; но это зависит от вашей ситуации с управлением ключами (например, ключи были сгенерированы в последний раз несколько лет назад, а у вас их еще /etc/ssh/ssh_host_ed25519_keyнет, или у вас есть ключ RSA 1024 или даже ключ DSS).
Писквор покинул здание