Я перевстановлюю свій робочий стіл 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, але спочатку перевірте!


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).
Пісквор вийшов із будівлі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.