Неумышленное удаление .ssh / authorized_keys, это серьезная ошибка?


13

Я новичок в настройке SSH Keys на 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, когда вы нажимаете клавишу Tab для автозаполнения пути, и есть несколько вариантов.
ilkkachu

Ответы:


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

Если вы не хотите удалять все ключи, отредактируйте файл и удалите только строки в следующий раз.


Спасибо, это моя личная машина. Я не уверен, что он еще служил сервером
Revolucion для Моники

2
На вашем клиенте вам нужен закрытый ключ-файл и known_hosts, а на сервере авторизованные_ключи с pubkeys
trietend
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.