Разрешить root ssh centos

Обновлено: 01.07.2024

SSH, он же Secure Shell – это зашифрованный протокол, используемый для подключения к серверу и управления ним. При работе с сервером CentOS 7, вы, скорее всего, проведете большую часть времени в сеансе терминала, подключенного к серверу через SSH.

В этом мануале вы узнаете, как настроить ключи SSH на новом сервере CentOS 7.

SSH-ключи обеспечивают простой и безопасный способ входа на сервер и рекомендуются для всех пользователей.

1. Разрешение пользователю root заходить по SSH.

Внимание! В операционной системе CentOS 7 данная опция ВКЛЮЧЕНА уже по умолчанию и настраивать ее не нужно!

Для начала, необходимо создать пароль пользователю root следующей командой:

После нажатия Enter вводим дважды пароль.

Теперь открываем настройки SSH:

и редактируем параметр PermitRootLogin — задаем значение yes :

Перезапускаем ssh server:

или в старых версиях без systemd :

2. Создание пары RSA-ключей.

Для начала нужно создать пару ключей на клиентской машине (обычно это ваш компьютер):

После ввода команды ssh-keygen вы увидите следующий запрос:


Нажмите Enter, чтобы сохранить пару ключей в подкаталог .ssh/ в домашнем каталоге, или укажите альтернативный путь.

После этого вы увидите:


Здесь можно ввести надежную парольную фразу, которую настоятельно рекомендуется использовать. Эта парольная фраза добавляет уровень безопасности для предотвращения входа в систему неавторизованных пользователей.

Вы увидите такой вывод:


В результате выполнения команды сгенерировалось 2 файла в каталоге

  • id_rsa.pub — публичный ключ;
  • id_rsa — секретный ключ.

Теперь у вас есть открытый и закрытый ключи, которые можно использовать для аутентификации. После этого нужно скопировать открытый ключ на сервер, чтобы затем настроить беспарольную аутентификацию на основе SSH-ключей .

Копируем наш публичный ключ на сервер, к которому мы будем подключаться без ввода пароля.

3. Копирование открытого ключа на сервер.

Самый быстрый способ скопировать открытый ключ на хост – это использовать утилиту ssh-copy-id . Этот метод очень прост, потому используйте его, если у вас есть такая утилита. Если на вашем клиентском компьютере нет ssh-copy-id , вы можете использовать один из двух альтернативных методов, перечисленных в этом разделе ниже (копирование через парольную аутентификацию SSH или копирование ключа вручную).

3.1. Копирование ключа с помощью ssh-copy-id.

Инструмент ssh-copy-id включен по умолчанию во многие операционные системы, поэтому вы можете использовать его в своей локальной системе. Чтобы этот метод работал, у вас уже должен быть парольный доступ SSH к серверу.

Чтобы использовать эту утилиту, вам просто нужно указать удаленный хост, к которому вы хотите подключиться, и учетную запись пользователя, к которой у вас есть SSH-доступ. На эту учетную запись будет скопирован ваш открытый ключ SSH.

Утилита использует такой синтаксис:

Вы увидите такой вывод:


Это означает, что ваш локальный компьютер не распознает удаленный хост. Это всегда происходит при первом подключении к новому хосту. Введите yes и нажмите Enter, чтобы продолжить.

Затем утилита сканирует локальную учетную запись, чтобы найти ключ id_rsa.pub .

Когда она найдет ключ, она предложит вам ввести пароль учетной записи удаленного пользователя:


Введите пароль (ваш ввод не будет отображаться из соображений безопасности) и нажмите Enter. Утилита подключится к учетной записи на удаленном хосте, используя предоставленный вами пароль. Затем она скопирует содержимое файла

/.ssh/id_rsa.pub в файл authorized_keys в домашнем каталоге

/.ssh удаленной учетной записи.

Вы увидите такой вывод:


На данный момент ваш ключ id_rsa.pub скопирован в удаленную учетную запись. Переходите к разделу 4.

3.2. Копирование открытого ключа по SSH.

Если у вас нет утилиты ssh-copy-id , но есть пароль SSH для доступа к учетной записи на сервере, вы можете загрузить свои ключи с помощью обычного подключения SSH.

Сделать это можно с помощью команды cat , которая прочитает содержимое файла открытого SSH-ключа на локальном компьютере, и конвейера, который передаст ключ через SSH-соединение.

После этого нужно убедиться, что каталог

/.ssh существует в удаленной учетной записи, а затем проверить его содержимое.

Команда выглядит так:

/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p

Вы можете увидеть такой вывод:


Это означает, что ваш локальный компьютер не распознает удаленный хост. Это происходит при первом подключении к новому хосту. Введите yes и нажмите Enter, чтобы продолжить.

После этого будет предложено ввести пароль учетной записи удаленного пользователя:

После ввода пароля содержимое ключа id_rsa.pub будет скопировано в конец файла authorized_keys учетной записи удаленного пользователя. Если все получилось, переходите к разделу 4.

3.3. Копирование открытого ключа вручную.

Если у вас нет парольного доступа, вам придется выполнить описанный выше процесс вручную.

Любым доступным способом подключитесь к удаленному хосту.

Если у вас есть доступ к учетной записи на удаленном сервере, убедитесь, что каталог

/.ssh существует. При необходимости создайте его.

Переходим в режим пользователя root.

Создаем служебный каталог для ключей.

Вручную нужно вставить содержимое файла id_rsa.pub в файл

/.ssh/authorized_keys на удаленной машине.

Чтобы отобразить содержимое id_rsa.pub , введите на локальной машине:

Вы увидите такой ключ:

по смыслу это будет вид

Теперь вы можете создать или изменить файл authorized_keys в этом каталоге.

Вы можете добавить содержимое файла id_rsa.pub в конец файла authorized_keys с помощью этой команды:

Если файла authorized_keys не существует, команда создаст его.

В приведенной выше команде замените public_key_string выводом команды cat

/.ssh/id_rsa.pub в вашей локальной системе. Он должен начинаться с ssh-rsa AAAA… .

Настроим права доступа на систему ключей.

Выйдем из учетной записи root:

Теперь можно проверить аутентификацию без пароля на сервере.

4. Аутентификация по SSH-ключам.

Скопировав открытый ключ, вы сможете войти на удаленный хост без пароля учетной записи удаленного пользователя.

Если вы впервые подключаетесь к этому хосту (если вы копировали ключ вручную), вы можете увидеть такое предупреждение:


Это означает, что ваш локальный компьютер не распознает удаленный хост. Введите yes и нажмите Enter.

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

Если вы создали парольную фразу, вам будет предложено ввести ее сейчас (обратите внимание, что вводимая вами фраза не будет отображаться в терминале из соображений безопасности). После аутентификации в новом сеансе оболочки вы получите доступ к удаленному пользователю.


Если аутентификация по ключам прошла успешно, можно отключить парольную аутентификацию, чтобы повысить безопасность удаленной машины.

5. Отключение парольной аутентификации.

Если вы смогли войти в свою учетную запись с помощью SSH-ключей без пароля, нужно отключить механизм парольной аутентификации, чтобы защитить сервер от brute-force атак.

Важно! Прежде чем выполнять этот раздел, убедитесь, что на этом сервере вы настроили аутентификацию на основе SSH-ключей для учетной записи root. Этот раздел заблокирует поддержку паролей для входа в систему, и вы можете случайно заблокировать себя на собственном сервере.

Убедившись, что ваша удаленная учетная запись имеет все необходимые привилегии, зайдите на свой удаленный сервер с помощью SSH-ключей (либо с правами администратора).

Затем откройте файл конфигурации демона SSH:

Внутри файла найдите директиву PasswordAuthentication . Она может быть закомментирована. Раскомментируйте строку и установите значение no .

Это отключит возможность входа в систему через SSH с использованием паролей учетных записей:

Сохраните и закройте файл. Чтобы обновить настройки, необходимо перезапустить сервис sshd:

В качестве меры предосторожности откройте новое окно терминала и проверьте работу сервиса SSH:

После того как вы подтвердите работу сервиса SSH, можете закрыть все текущие сеансы сервера.

Демон SSH теперь поддерживает только аутентификацию по SSH-ключам. Парольная аутентификация успешно отключена.

Заключение:

Теперь на вашем сервере настроена аутентификация на основе SSH-ключей, позволяющая войти в систему без пароля учетной записи.

Favorite

Добавить в избранное

Главное меню » Операционная система CentOS » Отключение или включение корневого входа SSH и безопасного доступа SSH в CentOS 7

Отключение или включение корневого входа SSH и безопасного доступа SSH в CentOS 7

М ы все знаем, что CentOS поставляется с правами доступа root для внешнего мира по умолчанию. Это означает, что вы не можете напрямую войти в систему как пользователь root через SSH, но вы все равно можете использовать root-привилегии, используя вместо этого команду «sudo». Однако иногда удобнее входить в систему прямо в качестве пользователя root. Вот почему в этой статье мы поговорим о том, как включить, отключить и защитить регистрацию SSH на сервере при попытке входа в систему с правами администратора.

Прежде чем мы начнем, нам нужно будет выполнить несколько требований, прежде чем продолжить эту статью.

Требования:

  • Установленный CentOS ;
  • Доступ через SSH к вашему VPS;
  • Обычный пользователь, который может использовать «su» или «sudo» для получения привилегий root;

Войдите в свой CentOS VPS через SSH в качестве обычного пользователя с привилегиями sudo:

Отключить вход root через SSH

Чтобы отключить вход в корневой каталог, нам нужно изменить главный файл конфигурации ssh «sshd_config» с помощью текстового редактора по вашему выбору. В нашем примере мы будем использовать nano в качестве редактора.

Теперь найдите эту строку ниже в файле.

Выполняя следующую команду, мы перезапустим службу демона SSH:

Теперь, когда мы попытаемся войти в систему как пользователь root, вы должны получить ошибку “Access Denied”.

На этом этапе вы не можете входить в систему напрямую как root, но вы можете войти в систему как обычный пользователь с привилегиями sudo и использовать команду «sudo» или «su» для переключения на пользователя root. Например:

Включить SSH Root Login

Чтобы включить ведение журнала в качестве пользователя root, нам необходимо изменить основной файл конфигурации ssh «sshd_config» с помощью текстового редактора по вашему выбору. В нашем примере мы будем использовать nano в качестве редактора.

Найдите в файле следующую строку.

После сохранения файла мы должны перезапустить службу sshd.

Теперь вы можете попытаться войти в систему напрямую как пользователь root.

Безопасный доступ к SSH в CentOS 7

В этом разделе мы предоставим вам несколько простых советов о том, как защитить SSH-доступ на вашем сервере CentOS 7.

Изменение порта сервера SSH

Чтобы изменить стандартный порт прослушивания, вам необходимо изменить конфигурационный файл SSH, используя следующую команду:

Затем вам нужно найти строку, которая ссылается на номер порта. После того, как вы найдете номер порта, который (значение по умолчанию должно быть 22), вы можете изменить значение по умолчанию на нужный номер.

Когда вы закончите редактирование, нажмите Ctrl + O, а затем нажмите Ctrl + X, чтобы сохранить и выйти.

Перезапустите службу демона SSH, выполнив команду:

Отключение протокола SSHv1

Существует две версии SSH-протоколов: SSHv1 и SSHv2. Использование протокола SSHv1 не рекомендуется, поскольку это более старая версия и менее безопасна, чем новый протокол SSHv2. В следующем разделе мы отключим SSHv1. Если вам нужна эта версия по какой-либо причине, вы можете игнорировать эту часть.

Откройте конфигурационный файл SSH с помощью этой команды:

и отредактируйте ее:

Теперь мы должны перезапустить службу SSH, чтобы новая конфигурация вступила в силу. Мы можем сделать это, выполнив эту команду:

Отключение доступа root также является одним из способов защитить ваш SSH-сервер, который мы показали вам в начале статьи.

В этой статье мы узнали, как отключить и разрешить вход root в SSH. Мы также узнали, как защитить SSH-сервер, изменив номер порта, отключив доступ root и отключив SSH-протокол SSHv1.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Прежде чем мы начнем, нам нужно будет выполнить несколько требований, прежде чем продолжить эту статью.

Требования:


Установленный CentOS ;
Доступ через SSH к вашему VPS;
Обычный пользователь, который может использовать «su» или «sudo» для получения привилегий root;

Войдите в свой CentOS VPS через SSH в качестве обычного пользователя с привилегиями sudo:

Отключить вход root через SSH

Чтобы отключить вход в корневой каталог, нам нужно изменить главный файл конфигурации ssh «sshd_config» с помощью текстового редактора по вашему выбору. В нашем примере мы будем использовать nano в качестве редактора.

Теперь найдите эту строку ниже в файле.

Выполняя следующую команду, мы перезапустим службу демона SSH:

Теперь, когда мы попытаемся войти в систему как пользователь root, вы должны получить ошибку “Access Denied”.

На этом этапе вы не можете входить в систему напрямую как root, но вы можете войти в систему как обычный пользователь с привилегиями sudo и использовать команду «sudo» или «su» для переключения на пользователя root. Например:

Включить SSH Root Login

Чтобы включить ведение журнала в качестве пользователя root, нам необходимо изменить основной файл конфигурации ssh «sshd_config» с помощью текстового редактора по вашему выбору. В нашем примере мы будем использовать nano в качестве редактора.

Найдите в файле следующую строку.

После сохранения файла мы должны перезапустить службу sshd.

Теперь вы можете попытаться войти в систему напрямую как пользователь root.

Безопасный доступ к SSH в CentOS 7

В этом разделе мы предоставим вам несколько простых советов о том, как защитить SSH-доступ на вашем сервере CentOS 7.

Изменение порта сервера SSH

Чтобы изменить стандартный порт прослушивания, вам необходимо изменить конфигурационный файл SSH, используя следующую команду:

Затем вам нужно найти строку, которая ссылается на номер порта. После того, как вы найдете номер порта, который (значение по умолчанию должно быть 22), вы можете изменить значение по умолчанию на нужный номер.

Когда вы закончите редактирование, нажмите Ctrl + O, а затем нажмите Ctrl + X, чтобы сохранить и выйти.

Перезапустите службу демона SSH, выполнив команду:

Отключение протокола SSHv1

Существует две версии SSH-протоколов: SSHv1 и SSHv2. Использование протокола SSHv1 не рекомендуется, поскольку это более старая версия и менее безопасна, чем новый протокол SSHv2. В следующем разделе мы отключим SSHv1. Если вам нужна эта версия по какой-либо причине, вы можете игнорировать эту часть.

Откройте конфигурационный файл SSH с помощью этой команды:

и отредактируйте ее:

Теперь мы должны перезапустить службу SSH, чтобы новая конфигурация вступила в силу. Мы можем сделать это, выполнив эту команду:

Отключение доступа root также является одним из способов защитить ваш SSH-сервер, который мы показали вам в начале статьи.

В этой статье мы узнали, как отключить и разрешить вход root в SSH. Мы также узнали, как защитить SSH-сервер, изменив номер порта, отключив доступ root и отключив SSH-протокол SSHv1.

В этом руководстве мы рассмотрим, как разрешить или запретить доступ SSH к определенному пользователю или группе в Linux

Файл конфигурации OpenSSH по умолчанию имеет две директивы для разрешения и запрета доступа SSH к определенному пользователю (пользователям) или группе.

Во-первых, мы увидим, как разрешить SSH-доступ для определенного пользователя, например sk.

Обратите внимание, что все команды должны выполняться как пользователь root.

Разрешить SSH Доступ пользователю или группе

Перейдите на ваш удаленный сервер и отредактируйте файл sshd_config:

$ sudo vi /etc/ssh/sshd_config

Добавьте или отредактируйте следующую строку:

Замените «sk» на свое имя пользователя.

Вы также можете указать несколько пользователей, как показано ниже.

AllowUsers sk itsecforu

Чтобы разрешить целую группу, скажем, например, root, добавьте / отредактируйте следующую строку:

Те, кто входит в группу, могут передавать ssh на удаленный сервер.

Сохраните и закройте конфигурационный файл SSH.

Перезапустите службу SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

Теперь пользователям sk, itsecfor или всем пользователям под группой «root» разрешено ssh на ваш удаленный сервер. Другие пользователи (кроме sk, itsecforu и пользователи «root») не могут.

Теперь давайте рассмотрим, как запретить / отключить доступ ssh определенному пользователю или группе.

Запретить SSH Доступ пользователю или группе

Чтобы отключить или запретить доступ SSH к любому пользователю или группе, вам необходимо добавить / изменить следующие директивы в файле sshd_config вашего удаленного сервера.

Чтобы запретить доступ SSH к определенному пользователю с именем «sk», отредактируйте файл sshd_config:

Добавьте / отредактируйте следующую строку в файле sshd_config.

Аналогично, чтобы запретить доступ SSH нескольким пользователям, укажите имена пользователей как показано ниже.

DenyUsers sk itsecforu

Чтобы запретить доступ SSH ко всей группе, например root, добавьте:

Сохраните и закройте файл конфигурации ssh.

Перезапустите службу ssh, чтобы внести изменения.

$ sudo systemctl restart sshd

если вы пытаетесь использовать ssh для сервера с использованием запрещенных пользователей, например sk:

Что еще более важно, вы также должны отключить вход пользователя root.

Доступ root по ssh считается плохой практикой с точки зрения безопасности.

Чтобы отключить root ssh login, отредактируйте файл sshd_config:

Найдите следующую строку, Раскомментируйте ее и установите значение равным no.

Настройка SSH в CentOS 7

Процесс конфигурации индивидуален для каждого системного администратора, но все же имеется несколько пунктов, полезных для всех юзеров. В рамках данной статьи мы поговорим не только о серверной составляющей, но и о клиентской, а также укажем, на каком из устройств выполняется определенное действие.

Установка компонентов и запуск сервера

Мы уже сказали, что SSH по умолчанию добавлен в список системных библиотек CentOS 7, но иногда по некоторым причинам необходимые компоненты отсутствуют на компьютере. В таком случае их потребуется добавить, а затем активировать работу сервера.

Установка сервера и клиента SSH в CentOS 7 через терминал

Ввод пароля для установки компонентов SSH в CentOS 7 через терминал

Первая команда для активации сервиса SSH в CentOS 7

Вторая команда для активации сервиса SSH в CentOS 7

Проверка работоспособности порта протокола SSH в CentOS 7

После успешного произведения указанных выше инструкций можно смело переходить к началу конфигурации. Хотим обратить ваше внимание, что обязательно следует читать показанные на экране уведомления во время активации команд. Они могут свидетельствовать о возникновении определенных ошибок. Своевременное исправление всех неполадок поможет избежать дальнейших проблем.

Редактирование конфигурационного файла

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

    Советуем использовать редактор nano, установить который в систему поможет команда sudo yum install nano . По завершении инсталляции запустите конфигурационный файл через sudo nano /etc/ssh/sshd_config .

Переход к конфигурационному файлу SSH в CentOS 7

Редактирование конфигурационного файла SSH в CentOS 7

Перезапись конфигурационного файла SSH в CentOS 7

Выход из редактирования конфигурационного файла SSH в CentOS 7

Перезапуск сервисов SSH в CentOS 7

Проверка статуса работоспособности сервера SSH в CentOS 7

Создание пары RSA-ключей

Криптографический алгоритм RSA (аббревиатура от фамилий Rivest, Shamir и Adleman) используется сервисом SSH для создания пары ключей. Такое действие позволить максимально обезопасить клиентскую и серверную часть при проведении соединений. Задействовать придется обе цепи, чтобы создать пару ключей.

    Для начала зайдите на клиентский компьютер и введите в консоли ssh-keygen .

Создание пары ключей для клиента в утилите SSH в CentOS 7

Выбрать файл для расположения пары ключей клиента SSH в CentOS 7

Ввод парольной фразы для пары ключей утилиты SSH в CentOS 7

Успешное создание пары ключей для утилиты SSH в CentOS 7

При успешном выполнении указанного выше руководства появятся открытый и закрытый ключ, которые в дальнейшем будут задействованы для аутентификации с сервером. Однако для этого ключ нужно передать на сервер и отключить вход по паролю.

Копирование открытого ключа на сервер

Как уже было сказано выше, копирование ключа необходимо для дальнейшей безпарольной аутентификации. Сделать такое действие можно одним из трех способов, каждый из которых будет наиболее оптимальным в определенных ситуациях. Давайте рассмотрим все их по порядку.

Утилита ssh-copy-id

Копирование ключей с помощью специальной утилиты SSH в CentOS 7

The authenticity of host '111.111.11.111 (111.111.11.111)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)?

Оно обозначает, что сервер не находится в списке надежных источников и будет задан вопрос, стоит ли проводить дальнейшее подключение. Выберите вариант yes .

Подтверждение первого входа на удаленный компьютер SSH в CentOS 7

Осталось только ввести пароль от учетной записи сервера, и на этом процедура копирования через упомянутую утилиту будет успешно завершена.

Ввода пароля для удаленного входа на компьютер SSH в CentOS 7

Копирование открытого ключа по SSH

При отсутствии утилиты ssh-copy-id рекомендуем задействовать стандартные возможности инструмента SSH, если, конечно, у вас имеется доступ к серверной учетной записи. Выгрузка ключей производится посредством обычного подключения, а именно:

    Команда cat позволит считать и сразу же добавить ключ в файл на серверном компьютере. Для этого просто введите cat

/.ssh/id_rsa.pub | ssh username@remote_host "mkdir -p

Автоматическое копирование ключей через подключение SSH в CentOS 7

Выбрать место сохранения скопированных ключей SSH в CentOS 7

Ручное копирование открытого ключа

Иногда случаются ситуации, когда невозможно использовать утилиту ssh-copy-id, а также отсутствует доступ по паролю. Тогда копирование осуществляется вручную.

    Сперва узнайте этот ключ через уже знакомую команду cat, введя в консоли cat

Узнать содержимое файла с ключами в терминале SSH в CentOS 7

Ознакомиться с созданным открытым ключом SSH в CentOS 7

Создать папку для хранения открытого ключа SSH в CentOS 7

Скопировать открытый ключ на удаленный компьютер SSH в CentOS 7

На этом процедура копирования ключа успешно завершена. Благодаря этому теперь доступна аутентификация к серверу путем ввода ssh username@remote_host . Однако подключиться можно и через пароль, что понижает безопасность такой сети.

Отключение аутентификации по паролю

Отключение возможности входа по паролю, в обход ключа, делает такое удаленное соединение менее защищенным. Поэтому рекомендуется деактивировать эту функцию для предотвращения несанкционированной аутентификации со стороны злоумышленников.

    На удаленном сервере запустите конфигурационный файл SSH через sudo nano /etc/ssh/sshd_config .

Открыть конфигурационный файл для редактирования SSH в CentOS 7

Отключить вход по паролю для SSH в CentOS 7

Сохранить изменения конфигурационного файла SSH в CentOS 7

Перезапустить сервис после изменений конфигурации SSH в CentOS 7

На этом статья, в которой вы были ознакомлены с основными конфигурационными моментами протокола SSH, подходит к концу. Настоятельно рекомендуем изучить содержимое выдачи после активации команд, поскольку там иногда содержатся описания ошибок. Их решение ищите в официальной документации инструмента или дистрибутива CentOS.

Закрыть

Мы рады, что смогли помочь Вам в решении проблемы.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Закрыть

Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Читайте также: