Назад | Перейти на главную страницу

Советы по безопасности - вход с root-доступом по ssh

Я хотел бы получить несколько советов по моему делу:

У меня есть сервер с публичным IP-адресом. У меня есть root-пользователь с паролем. Я отключил (в sshd) PermitRootlogin = Нет

Вопросы / подсказки / советы:

Как я могу удалить пароль root и получить доступ к этому серверу по ssh без каких-либо паролей? Нужно ли мне использовать только sudo с пользователем для получения root-доступа?

Спасибо

Если вы хотите войти напрямую как root без пароля, вам не нужно удалять пароль root. Вместо этого вы можете установить PermitRootLogin without-password в конфигурации sshd перезапустите sshd, сгенерируйте (с помощью ssh-keygen или puttygen.exe) ключ для клиента, скопируйте содержимое .ssh/id*.pub (или экспорт из puttygen) в ~root/.ssh/authorized_keys на сервере и используйте его для доступа к вашему серверу как root. Вы можете сгенерировать клиентские ключи без пароля (менее безопасный) или с паролем, но используйте ssh-agent / pageant.exe, и он запомнит ваш пароль для последующих входов в систему.

Я отвечу на ваши вопросы по очереди ;-).

Как удалить пароль root

Бевор Вы так или иначе думаете, что вам нужен другой пользователь, у которого есть все права на sudo! В Ubuntu или Debian пользователь должен быть в группе админ. Войдите с этим пользователем через ssh и попробуйте получить root-доступ с помощью sudo -i. Если это сработало, вы можете продолжить отключение входа в систему для root с помощью passwd -l root и вы сделали.

Доступ к серверу без пароля

Доступ к серверу возможен с помощью пары ключей ssh. Это просто и в большинстве случаев безопаснее, чем обычный пароль. Сначала вы должны сгенерировать такую ​​пару ключей на своем клиентском компьютере. Если вы используете Linux / Unix, вы можете сделать это с помощью ssh-keygen -t rsa. Рекомендуется заблокировать эту пару ключей паролем, чтобы их можно было использовать только вам! Большинство настольных сред, таких как Gnome, Unity и Kde, могут разблокировать этот ssh-ключ автоматически после того, как вы разблокировали свой брелок / кошелек.

Теперь вам нужно развернуть свой открытый ключ (по умолчанию ~ / .ssh / id_rsa.pub) на вашем сервере, добавив его в файл * ~ / .ssh / authorized_keys * на вашем сервере. Вы можете сделать это по инструкции или с помощью команды ssh-copy-id user@server.

Если вход с вашим ключом прошел успешно, вы можете сделать больше для вашей безопасности, отключив вход по паролю для ssh. Чтобы заархивировать это, вам нужно изменить следующую строку в файле / и т.д. / SSH / sshd_config PasswordAuthentication yes к PasswordAuthentication no и перезапустите ssh-сервер.

Мне нужно использовать только sudo?

Нет, но рекомендуется! Но это зависит от того, как вы используете свой сервер. Если вы единственный пользователь, у которого есть доступ к вашему серверу, то не очень важно, что вы выберете, но если есть более одного пользователя, sudo имеет гораздо больший смысл, потому что вам не нужно сообщать свой пароль root для получить root-доступ или привилегированный доступ. Если вы решите, что один из пользователей больше не должен иметь root-доступ, вам нужно только удалить привилегии sudo вместо того, чтобы изменять пароль root и снова делиться им со всеми. Но не все можно сделать с помощью sudo.

Настройка конфигурации sshd чувствительна; Вы должны понимать множество нюансов. Но, в основном. . .

Возьмите свой открытый ключ, вам может потребоваться сгенерировать пару ключей в системе, и установите его в каталог .ssh в домашнем каталоге root на сервере. Установите «PermitRootLogin yes», а затем убедитесь, что при подключении к серверу по ssh он позволяет войти без запроса пароля. Затем измените параметр «PasswordAuthentication» на «нет».

Осторожно: PasswordAuthentication = no повлияет на ВСЕ подключения к системе, поэтому мой ответ здесь касается всех. Вы можете управлять пользователем за пользователем, например этот вопрос.