# Первичная настройка сервера на CentOS 7
Правильная первичная настройка только что созданного сервера не только подготовит его к дальнейшей работе, но и сделает её более удобной и безопасной.
В этой инструкции мы расскажем, как подготовить только что созданный сервер под управлением CentOS 7 к работе: создадим нового пользователя, наделим его привилегиями sudo, установим и предварительно настроим фаервол, запретим подключение к серверу от имени root-пользователя и настроим SSH-подключение с аутентификацией по ключу.
# Создание нового пользователя
Первое подключение к серверу производится от имени root-пользователя. Подключиться можно как через веб-консоль, так и по SSH, задав предварительно пароль root-пользователя в панели управления сервером.
Мы не будем использовать root-пользователя для постоянного управления сервером — его права настолько обширны, что серверу можно нанести непоправимый ущерб даже просто по неосторожности. Чтобы избежать этого, создадим нового пользователя:
adduser User
Зададим для него пароль:
passwd User
Далее добавим его в группу пользователей, которые могут выполнять команды от имени администратора:
gpasswd -a User wheel
Все дальнейшие операции мы будем проводить от имени только что созданного нами пользователя. Чтобы запустить команду от имени администратора, в начале строки нужно будет ввести sudo .
Если пакет sudo не установлен на вашем сервере (после ввода команды появится сообщение Unit sudo.service could not be found ) установите его вручную.
Для этого зайдите на сервер от имени root-пользователя и выполните команду:
yum install sudo
Если вы введёте в командную строку sudo , консоль должна вернуть короткое приветственное сообщение. Теперь можно переключаться на только что созданного пользователя, добавленного в группу sudo.
# Установка и настройка фаервола
Для установки фаервола будем использовать программу-установщик YUM. Как правило, YUM установлен по умолчанию и сразу готов к работе.
Начнём с обновления репозиториев YUM:
sudo yum update
Программа-установщик укажет дисковый объём, который будет занят при установке обновлённых пакетов, и попросит согласие на продолжение.
После успешного обновления YUM (в строке выдачи появится сообщение Complete! ) можно переходить непосредственно к установке фаервола:
sudo yum install firewalld
По умолчанию служба ssh добавлена в список исключений фаервола, поэтому его можно запускать сразу же после установки.
Активируем его и запустим:
sudo systemctl enable firewalld sudo systemctl start firewalld
Активация позволит фаерволу запускаться после перезагрузки сервера.
Сейчас можем проверить, какая зона (группа настроек) активна и какие службы разрешены.
sudo firewall-cmd --list-all
Она выведет на экран активную зону с её настройками.
Чтобы посмотреть список всех доступных для подключения и настройки зон, введём команду:
sudo firewall-cmd --list-all-zones|less
Внутри этих зон можно настроить определённые правила, добавить сетевые интерфейсы и создать гибкую систему управления безопасностью вашего сервера. Это очень удобно, например, если вы используете ноутбук и регулярно подключаетесь к разным сетям. В нашем материале мы ограничимся только общими сведениями о фаерволе.
# SSH-подключение к серверу с аутентификацией по ключу
Принцип установления безопасного соединения с сервером для всех систем одинаков: мы помещаем на сервер публичный ключ, и при подключении сервер сравнивает свой публичный ключ с приватным ключом, который мы предъявляем при подключении.
Основные различия в данном случае обусловлены синтаксисом команд в разных версиях операционных систем.
Чтобы вручную поместить публичный ключ на сервер, подключимся к серверу по SSH и зайдём как новый пользователь User, которого мы создавали в начале инструкции.
Зайдём в корневую папку пользователя:
Создадим папку, в которой будет храниться публичный ключ:
mkdir .ssh
Теперь установим на неё права 700:
chmod 700 .ssh
В этой папке создадим файл, который будет содержать публичный ключ:
cd .ssh vi authorized_keys
В открывшемся текстовом файле разместим наш публичный ключ.Если вы используете ОС Windows, то для генерации пары ключей используйте утилиту PuTTY Key Generator. Сохраним файл и установим на него права 600:
chmod 600 authorized_keys
После этого можно отключиться от сервера и проверить правильность подключения к нему с помощью ключа.
# Ограничение SSH-доступа для root-пользователя
Чтобы повысить уровень безопасности нашего сервера, запретим SSH-подключение к нему от имени root-пользователя. Для этого мы отредактируем файл конфигурации ssh-демона.
Подключимся к серверу от имени root-пользователя и откроем в текстовом редакторе файл конфигурации:
vi /etc/ssh/sshd_config
В этом файле нам нужно найти строку #PermitRootLogin yes . Раскомментируем её (уберём # в начале строки) и заменим yes на no. В итоге строка должна выглядеть так: PermitRootLogin no . Сохраним изменения и перезагрузим нашу ssh-службу:
systemctl reload sshd
Теперь к нашему серверу нельзя подключиться по SSH от имени root-пользователя — можно только через веб-консоль.
Далее можно переходить непосредственно к работе с сервером — устанавливать программное обеспечение, привязывать домен и начинать работу с собственными проектами.
© Джино, 2003–2022. «Джино» является зарегистрированным товарным знаком.
Лицензия на телематические услуги связи №150549 от 09.03.2017.
Настройка SSH в CentOS: пошаговое руководство
Каждый раз, когда пользователь подключается к серверу, он должен вводить пароль для доступа, что может быть неудобно при частых подключениях. Чтобы обеспечить вход без пароля, на удаленном сервере необходимо настроить аутентификацию с помощью SSH -ключей. В этой статье представлен подробный обзор процесса настройки SSH в CentOS для всех, кто планирует его использовать.
Принцип работы SSH
SSH — это протокол, который создает зашифрованное соединение между пользовательским компьютером, устройством и сервером. Он позволяет осуществлять удаленный доступ и контроль над компьютером и включен по умолчанию в CentOS 7.
Это безопасный метод передачи почти всех других сетевых протоколов в небезопасной обстановке. Поэтому вы можете работать вдали от компьютера, используя командную оболочку, а также передавать по зашифрованному каналу аудио- или видеопоток, например, с веб-камеры. SSH также может сжимать передаваемые данные и шифровать их после этого.
Многие хостинги предлагают своим клиентам за определенную плату SSH-подключение к домашнему каталогу. Это полезно для тех, кто предпочитает работать в командной строке, или для тех, кому необходимо удаленно запускать приложения, в том числе графические.
Настройка SSH в CentOS может отличаться в зависимости от ваших целей и задач. Однако можно выделить несколько общих моментов, на которые следует обратить внимание каждому пользователю. В том числе нужно ориентироваться на пользовательскую и серверную составляющие.
Этапы настройки SSH в CentOS
Рассмотрим основные этапы настройки и наиболее удобные способы.
Обычно SSH присутствует в системных библиотеках. Если же их по каким-то причинам там не оказалось, придётся поставить их самостоятельно.
- Задайте в терминале соответствующую команду.
sudo yum -y install openssh-server openssh-clients
- Введите пароль. Обратите внимание, что символы не будут отображаться.
- Проверьте конфигурацию следующей командой.
sudo chkconfig sshd on
- Запустите сервис. Для этого действия предусмотрена своя команда.
service sshd start
- Убедитесь, что порт 22 работает.
netstat -tulpn | grep :22
Итак, подготовительные работы выполнены. Можно приступить к основной конфигурации.
Полезная рекомендация – внимательно читайте текст уведомлений в процессе использования команд. Они могут содержать предупреждения об ошибках. Если их игнорировать, есть риск столкнуться с проблемами в будущем.
- Редактирование конфигурационного файла
Рассмотрим процесс на примере редактора nano.
- Установите его с помощью команды.
sudo yum install nano
- Откройте конфигурационный файл.
sudo nano /etc/ssh/sshd_config
Вы увидите доступные параметры. Перед некоторыми из них есть символ решётки, это значит, что параметр закомментирован. Если решётку убрать, параметр будет активирован.
Для повышения уровня безопасности, добавьте ещё один протокол – «Protocol 2».
При желании можно изменить другие параметры, но это необязательно. Сохраните изменения, выбрав пункт «Записать» или нажмите на клавиатуре Ctrl + O.
Выйти из редактора тоже можно двумя способами: выбрав «выход» или нажав клавиши Ctrl + X.
- Перезапустите сервис.
sudo service sshd restart
- Проверьте, корректно ли он работает.
service sshd status
Алгоритм RSA используется в SSH для генерации пары ключей. Аббревиатура образована из имен Rivest, Shamir и Adleman. Этот процесс обеспечивает оптимальную защиту клиентской и серверной частей соединения. Чтобы получить доступ по SSH к серверу, необходимо сгенерировать соответствующий набор ключей SSH, состоящий из открытого и закрытого. То есть обязательно нужно создать пару ключей.
Чтобы это сделать, откройте командную строку на пользовательском компьютере. Введите команду.
В следующей строке можно задать путь для сохранения ключа. Если просто нажать Enter без изменений, останутся настройки по умолчанию.
Следующий этап – формирование пароля. В целях безопасности и избежания ошибок его нужно ввести 2 раза.
Ключ готов. Он представлен в виде графического изображения из символов. Например, такое.
- Копирование открытого ключа на сервер
Когда настроена аутентификация с помощью ключей SSH, нет необходимости каждый раз вводить пароль. Существует 3 способа копирования.
- С помощью утилиты ssh-copy-id.
Это наиболее удобный способ. Но важно убедиться, что утилита уже установлена на компьютере. Введите следующую команду.
ssh-copy-id username@remote_host. В данном случае username@remote_host – это имя пользователя и хост удаленного сервера.
Машина выдаст оповещение и спросит, действительно ли вы собираетесь подключить сервер. Выбираем «yes» и вводим пароль. Всё готово.
- Копирование ключа с помощью SSH
Напишите следующую команду. Не забудьте указать своё имя пользователя и хост вместо «username@remote_host».
cat ~/.ssh/id_rsa.pub | ssh username@remote_host «mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys»
Старые ключи останутся в файле, так как опция >> просто дописывают новую информацию без замены существующей. Введите пароль и перезагрузите сервер.
- Копирование вручную.
Узнайте ключ с помощью команды.
Появится длинная комбинация символов, это и есть ключ. Скопируйте его и сохраните в отдельном файле.
Подключитесь к удалённому компьютеру, создайте каталог.
Введите ещё одну команду.
echo public_key_string >> ~/.ssh/authorized_keys
Так данные попадут в файл «authorized_keys». Найдите надпись «public_key_string». Вместо неё вставьте ключ, который скопировали ранее.
Готово. Теперь аутентификация к серверу будет происходить, если ввести «ssh username@remote_host».
Настройка SSH в CentOS 7
SSH (secure shell) — протокол для создания шифрованного соединения между клиентом и сервером. Благодаря этой технологии может осуществляться удаленное управление компьютером. Взаимодействие с утилитой происходит в терминале, а в операционную систему CentOS 7 она добавлена по умолчанию. Поэтому сегодня мы бы хотели детально рассмотреть стандартную процедуру настройки, которая будет полезна всем, кто собирается работать с SSH.
Настраиваем SSH в CentOS 7
Процесс конфигурации индивидуален для каждого системного администратора, но все же имеется несколько пунктов, полезных для всех юзеров. В рамках данной статьи мы поговорим не только о серверной составляющей, но и о клиентской, а также укажем, на каком из устройств выполняется определенное действие.
Установка компонентов и запуск сервера
Мы уже сказали, что SSH по умолчанию добавлен в список системных библиотек CentOS 7, но иногда по некоторым причинам необходимые компоненты отсутствуют на компьютере. В таком случае их потребуется добавить, а затем активировать работу сервера.
- Откройте «Терминал» и пропишите там команду sudo yum -y install openssh-server openssh-clients .
- Подтвердите подлинность учетной записи суперпользователя, введя пароль. Учтите, что вводимые таким образом символы не отображаются в строке.


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





Редактированием конфигурационного файла изменяется много параметров, но основной процесс — добавление и настройка ключей — производится с помощью специальных команд, о чем мы и хотим поговорить далее.
Создание пары RSA-ключей
Криптографический алгоритм RSA (аббревиатура от фамилий Rivest, Shamir и Adleman) используется сервисом SSH для создания пары ключей. Такое действие позволить максимально обезопасить клиентскую и серверную часть при проведении соединений. Задействовать придется обе цепи, чтобы создать пару ключей.
- Для начала зайдите на клиентский компьютер и введите в консоли ssh-keygen .
- После активации появится новая строка, где будет предложено указать путь для сохранения ключа. Если хотите оставить расположение по умолчанию, не вводите ничего, а просто нажмите на клавишу Enter.
- Далее создается парольная фраза. Она обеспечит защищенность от несанкционированного входа в систему. После создания пароля его потребуется повторить.
- На этом процедура генерации завершена. На экране вы увидите сам ключ и случайное изображение, присвоенное ему.
При успешном выполнении указанного выше руководства появятся открытый и закрытый ключ, которые в дальнейшем будут задействованы для аутентификации с сервером. Однако для этого ключ нужно передать на сервер и отключить вход по паролю.
Копирование открытого ключа на сервер
Как уже было сказано выше, копирование ключа необходимо для дальнейшей безпарольной аутентификации. Сделать такое действие можно одним из трех способов, каждый из которых будет наиболее оптимальным в определенных ситуациях. Давайте рассмотрим все их по порядку.
Утилита ssh-copy-id
Копирование открытого ключа через утилиту ssh-copy-id — самый простой метод. Однако подойдет он только в том случае, когда на компьютере присутствует этот самый инструмент. Вам же нужно прописать всего одну команду ssh-copy-id username@remote_host , где username@remote_host — имя пользователя и хост удаленного сервера.
Если соединение проводится первый раз, на экране вы увидите сообщение подобного характера:
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
При отсутствии утилиты ssh-copy-id рекомендуем задействовать стандартные возможности инструмента SSH, если, конечно, у вас имеется доступ к серверной учетной записи. Выгрузка ключей производится посредством обычного подключения, а именно:
- Команда cat позволит считать и сразу же добавить ключ в файл на серверном компьютере. Для этого просто введите cat ~/.ssh/id_rsa.pub | ssh username@remote_host «mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys» , где username@remote_host — имя учетной записи и хоста удаленного компьютера. Учтите, что опция >> добавит ключ в конец файла, а не перезапишет его полностью. Поэтому введенные ранее ключи тоже будут сохранены.
- Для соединения введите парольную фразу.
- Не забудьте перезагрузить сервер через sudo service sshd restart , чтобы обновились списки ключей.
Ручное копирование открытого ключа
Иногда случаются ситуации, когда невозможно использовать утилиту ssh-copy-id, а также отсутствует доступ по паролю. Тогда копирование осуществляется вручную.
- Сперва узнайте этот ключ через уже знакомую команду cat, введя в консоли cat ~/.ssh/id_rsa.pub .
- Скопируйте его содержимое в отдельный файл.
- Подключитесь любым удобным методом к удаленному компьютеру и создайте каталог mkdir -p ~/.ssh . Команда ничего не сделает, если каталог уже существует.
- Осталось только внести данные в файл «authorized_keys». Команда echo public_key_string >> ~/.ssh/authorized_keys добавит ключ в файл или создаст сначала файл, если он отсутствует. Вместо «public_key_string» нужно вставить полученную ранее строку с ключом.
На этом процедура копирования ключа успешно завершена. Благодаря этому теперь доступна аутентификация к серверу путем ввода ssh username@remote_host . Однако подключиться можно и через пароль, что понижает безопасность такой сети.
Отключение аутентификации по паролю
Отключение возможности входа по паролю, в обход ключа, делает такое удаленное соединение менее защищенным. Поэтому рекомендуется деактивировать эту функцию для предотвращения несанкционированной аутентификации со стороны злоумышленников.
- На удаленном сервере запустите конфигурационный файл SSH через sudo nano /etc/ssh/sshd_config .
- Отыщите параметр «PasswordAuthentication» и измените значение на no .
- Сохраните изменения и завершите работу в текстовом редакторе.
- Новый параметр вступит в силу только после перезагрузки сервиса sudo systemctl restart sshd.service .
На этом статья, в которой вы были ознакомлены с основными конфигурационными моментами протокола SSH, подходит к концу. Настоятельно рекомендуем изучить содержимое выдачи после активации команд, поскольку там иногда содержатся описания ошибок. Их решение ищите в официальной документации инструмента или дистрибутива CentOS.