@kirill-93

Как правильно авторизовываться по ssh?

На сервере ubuntu, подключаюсь по ssh под рутом через логин и пароль. Говорят, что это плохо и нужно авторизовываться ключом. У меня появилось несколько вопросов:
1) Правильно ли я понимаю порядок подключения по ключу:
- Сгенерировать публичный и приватные ключи
- Добавить публичный ключ на сервере в ~/.ssh/authorized_keys
- С помощью приватного ключа подключаться с клиента
2) Если правильно, то для какого пользователя следует делать эти ключи?
3) Пишут, что лучше отключить возможность подключения по ssh под рутом (PermitRootLogin no). Этот параметр отключит возможность подключения любым способом? И паролем и ключом? Получается что рутовый пароль будет нужен только для sudo?
Насколько я сам понимаю картина такая: создаем ключ для какого-нибудь пользователя, запрещаем доступ по ssh для рута. То есть под рутом вообще не заходим никогда.
Что в таком случае делать, если например, потерять приватный ключ пользователя?
  • Вопрос задан
  • 298 просмотров
Решения вопроса 3
Понимаете Вы все правилно.
Рутовый пароль вам будет нужен только для подключения локально ( не по SSH).
Для sudo вы используете не root password а пароль от своего пользователя (пароль рут нужен для команды su)
Если вы потеряли ключ польззоателя - тогда авторизируетесь локально по паролю и делаете новый ключь.
Если это VPS у них должна быть VNC сонсоль если дедик то IPMI

Использовать можете любого созданого вами пользователя ( не забудте добавить его в sudousers) Линк
Так же советую изменить ssh порт с 22 на какой-то другой 2022 к примеру. ( Боты восновном сканируют только стандартые порты)
Ответ написан
Всё правильно понял. Единственное sudo, обычно, просит пароль пользователя, под которым ты запускаешь sudo, а не рута.

Что в таком случае делать, если например, потерять приватный ключ пользователя?

Терять нельзя, это то же самое, что забыть пароль. Многие VPS-хостеры предоставляют доступ к терминалу через веб-интерфейс, в этом случае восстановить доступ через него. Если же такой возможности нет и нет физического доступа к серверу, то разве что горевать и писать в поддержку хостера.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Linux
software engineer
На удаленном сервере заведите себе пользователя.
Настройте ему доступ к sudo (в /etc/sudoers можно настроить так, чтобы этот пользователь мог выполнять sudo без дополнительного ввода пароля).
Настройте ssh ключи (у себя приватный, на удаленном сервере под этим пользователем публичный).

Подключаетесь к удаленном серверу под этим пользователем, выполняете команды, которые требую прав суперпользователя через sudo - profit.

У пользователя root вообще пароля может и не быть. Не нужен он ему. Все команды выполняются через sudo. А пользователей с пустым паролем на сервер не пускает.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы