Мимоволі видаляємо .ssh / санкціоновані ключі, це серйозна помилка?


13

Я новачок, щоб налаштувати SSH-ключі на Ubuntu 16.04. Я шукав авторизований ключ для видалення імені, anneале я думаю, що видалив весь authorized_keysфайл.

mike@mike-thinks:~$ rm /home/mike/.ssh/
authorized_keys  id_rsa           id_rsa.pub       known_hosts
mike@mike-thinks:~$ rm /home/mike/.ssh/authorized_keys 

Це серйозна помилка? Якщо так, як їх відновити? Тим часом я зробив це:

mike@mike-thinks:~/.ssh$ touch ~/.ssh/authorized_keys
mike@mike-thinks:~/.ssh$ ls
authorized_keys  id_rsa  id_rsa.pub  known_hosts
mike@mike-thinks:~/.ssh$ chmod 600 ~/.ssh/authorized_keys

Як перша rmкоманда опинила вміст каталогу? Це помилка копіювання, яка має бути ls /home/mike/.ssh/?
Бармар

3
@Barmar, так виглядає в Bash, коли ви натискаєте вкладку, щоб автозавершити шлях, і є кілька варіантів.
ilkkachu

3
Зараз найкращий час подумати про резервне копіювання та відновлення .
Відновіть Моніку - М. Шредер

Відповіді:


21

~/.ssh/authorized_keysФайл містить перелік усіх відкритих ключів. Це дозволяє всім, хто володіє приватним ключем, який відповідає одному з тих, підключитися до цієї машини та отримати віддалений доступ під цим обліковим записом користувача (нахил внизу ~шляху означає, що цей файл знаходиться в домашньому каталозі поточного користувача).

На сервері (машина , яку ви хочете підключити до ):

Якщо ви видалили цей файл, ніхто не зможе пройти автентифікацію під цим обліковим записом користувача, використовуючи свої приватні ключі. Аутентифікація пароля все ще працюватиме, якщо не було вимкнено.

Вам доведеться відновити файл і додати всі відкриті ключі, до яких ви хочете надати доступ, використовуючи метод автентифікації відкритого ключа знову.

На клієнті (машина планується отримати доступ з , тобто локальної машини):

Тут вам не потрібен authorized_keysфайл, оскільки ви, мабуть, не хочете авторизувати жодні ключі та надавати їм віддалений доступ до вашого локального комп'ютера. Він повинен бути порожнім або видаленим.

На клієнті вам потрібні лише файли приватного ключа, авторизовані на сервері (тобто, які мають відповідні відкриті ключі у authorized_keysфайлі на сервері), а також, можливо, відповідний configі known_hostsфайл.


Спасибі ! Хм, я справді новачок у відкритих ключах, приватних та віддаленому доступі. Це моя особиста машина. Я думаю, що ніхто не мав віддаленого доступу до моєї машини, я думаю, що ні.
Революція для Моніки

Якщо ви не хочете, щоб хтось мав доступ до машини, просто видаліть файл або залиште його порожнім, і ви готові йти.
pLumo

2
Гаразд, тоді я думаю, що ви його неправильно прочитали. authorized_keysФайл потрібен не на локальній машині, а на сервері.
pLumo

3
ssh-keygenтворить, id_rsaа id_rsa.pubне authorized_keys. І це точно.
pLumo

1
Зауважте, що досить часто хочеться перенести ssh з іншого на настільний комп'ютер, а використання ключів для аутентифікації в цьому випадку є більш безпечним.
Карл Білефельдт

3

Так, ви видалили весь файл. Щоб відтворити це, всі користувачі повинні скопіювати свої ssh-ключі на agein сервера. Можна використовувати

ssh-copy-id user@hostname.example.com

Якщо ви не хочете видаляти всі ключі, відредагуйте файл та видаліть лише рядки наступного разу.


Дякую, це моя особиста машина. Я не впевнений, що він ще служив сервером
Революція для Моніки

2
Для вашого клієнта вам потрібен приватний ключ-ключ і known_hosts, а на сервері-авторизовані ключі з pubkeys
триетенд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.