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


# Первичная настройка сервера на 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-пользователя — можно только через веб-консоль.

Новые статьи:  Linux против Windows: основные ЗА и ПРОТИВ

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

© Джино, 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

Итак, подготовительные работы выполнены. Можно приступить к основной конфигурации.

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

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

Рассмотрим процесс на примере редактора 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 раза.

Ключ готов. Он представлен в виде графического изображения из символов. Например, такое.

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

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

  • С помощью утилиты ssh-copy-id.

Это наиболее удобный способ. Но важно убедиться, что утилита уже установлена на компьютере. Введите следующую команду.

Новые статьи:  Как установить Rosa Linux

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 в CentOS 7

SSH (secure shell) — протокол для создания шифрованного соединения между клиентом и сервером. Благодаря этой технологии может осуществляться удаленное управление компьютером. Взаимодействие с утилитой происходит в терминале, а в операционную систему CentOS 7 она добавлена по умолчанию. Поэтому сегодня мы бы хотели детально рассмотреть стандартную процедуру настройки, которая будет полезна всем, кто собирается работать с SSH.

Настраиваем SSH в CentOS 7

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

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

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

  1. Откройте «Терминал» и пропишите там команду sudo yum -y install openssh-server openssh-clients . Установка сервера и клиента SSH в CentOS 7 через терминал
  2. Подтвердите подлинность учетной записи суперпользователя, введя пароль. Учтите, что вводимые таким образом символы не отображаются в строке. Ввод пароля для установки компонентов SSH в CentOS 7 через терминал

  • Запустите проверку конфигурации командой sudo chkconfig sshd on . Первая команда для активации сервиса SSH в CentOS 7
  • Затем запустите сам сервис SSH, указав service sshd start . Вторая команда для активации сервиса SSH в CentOS 7

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

  • Осталось только проверить, что задействованный по умолчанию порт открыт. Для этого используйте строку netstat -tulpn | grep :22 .
  • После успешного произведения указанных выше инструкций можно смело переходить к началу конфигурации. Хотим обратить ваше внимание, что обязательно следует читать показанные на экране уведомления во время активации команд. Они могут свидетельствовать о возникновении определенных ошибок. Своевременное исправление всех неполадок поможет избежать дальнейших проблем.

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

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

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

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

  • Вы будете ознакомлены со всеми доступными параметрами. Некоторые из них закомментированы, то есть перед параметром стоит знак #. Соответственно, убирая этот символ, вы раскомментируете параметр, и он будет действителен. Вы можете изменить стандартный порт, поменяв значение строки «Port» на любое другое. Кроме этого, рекомендуется установить второй протокол, используя «Protocol 2». Тогда повысится уровень безопасности. Редактирование конфигурационного файла SSH в CentOS 7
  • Эти и остальные параметры изменяются только по предпочтению администратора. Детальную информацию о каждом из них вы найдете в официальной документации SSH. По завершении редактирования сохраните изменения, нажав горячую клавишу Ctrl + O. Перезапись конфигурационного файла SSH в CentOS 7
  • Выйти из редактора поможет комбинация Ctrl + X. Выход из редактирования конфигурационного файла SSH в CentOS 7
  • Перезапустите сервис через sudo service sshd restart , чтобы внесенные изменения вступили в силу. Перезапуск сервисов SSH в CentOS 7
  • Затем можете проверить статус SSH, чтобы убедиться в его работоспособности, через service sshd status . Проверка статуса работоспособности сервера SSH в CentOS 7
  • Редактированием конфигурационного файла изменяется много параметров, но основной процесс — добавление и настройка ключей — производится с помощью специальных команд, о чем мы и хотим поговорить далее.

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

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

    1. Для начала зайдите на клиентский компьютер и введите в консоли ssh-keygen . Создание пары ключей для клиента в утилите SSH в CentOS 7
    2. После активации появится новая строка, где будет предложено указать путь для сохранения ключа. Если хотите оставить расположение по умолчанию, не вводите ничего, а просто нажмите на клавишу Enter. Выбрать файл для расположения пары ключей клиента SSH в CentOS 7
    3. Далее создается парольная фраза. Она обеспечит защищенность от несанкционированного входа в систему. После создания пароля его потребуется повторить. Ввод парольной фразы для пары ключей утилиты SSH в CentOS 7
    4. На этом процедура генерации завершена. На экране вы увидите сам ключ и случайное изображение, присвоенное ему. Успешное создание пары ключей для утилиты SSH в CentOS 7
    Новые статьи:  Установка Linux рядом с Windows 7

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

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

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

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

    Копирование открытого ключа через утилиту ssh-copy-id — самый простой метод. Однако подойдет он только в том случае, когда на компьютере присутствует этот самый инструмент. Вам же нужно прописать всего одну команду ssh-copy-id username@remote_host , где username@remote_host — имя пользователя и хост удаленного сервера.

    Копирование ключей с помощью специальной утилиты 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, если, конечно, у вас имеется доступ к серверной учетной записи. Выгрузка ключей производится посредством обычного подключения, а именно:

    1. Команда cat позволит считать и сразу же добавить ключ в файл на серверном компьютере. Для этого просто введите cat ~/.ssh/id_rsa.pub | ssh username@remote_host «mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys» , где username@remote_host — имя учетной записи и хоста удаленного компьютера. Учтите, что опция >> добавит ключ в конец файла, а не перезапишет его полностью. Поэтому введенные ранее ключи тоже будут сохранены. Автоматическое копирование ключей через подключение SSH в CentOS 7
    2. Для соединения введите парольную фразу. Выбрать место сохранения скопированных ключей SSH в CentOS 7
    3. Не забудьте перезагрузить сервер через sudo service sshd restart , чтобы обновились списки ключей.

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

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

    1. Сперва узнайте этот ключ через уже знакомую команду cat, введя в консоли cat ~/.ssh/id_rsa.pub . Узнать содержимое файла с ключами в терминале SSH в CentOS 7
    2. Скопируйте его содержимое в отдельный файл. Ознакомиться с созданным открытым ключом SSH в CentOS 7
    3. Подключитесь любым удобным методом к удаленному компьютеру и создайте каталог mkdir -p ~/.ssh . Команда ничего не сделает, если каталог уже существует. Создать папку для хранения открытого ключа SSH в CentOS 7
    4. Осталось только внести данные в файл «authorized_keys». Команда echo public_key_string >> ~/.ssh/authorized_keys добавит ключ в файл или создаст сначала файл, если он отсутствует. Вместо «public_key_string» нужно вставить полученную ранее строку с ключом. Скопировать открытый ключ на удаленный компьютер SSH в CentOS 7

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

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

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

    1. На удаленном сервере запустите конфигурационный файл SSH через sudo nano /etc/ssh/sshd_config . Открыть конфигурационный файл для редактирования SSH в CentOS 7
    2. Отыщите параметр «PasswordAuthentication» и измените значение на no . Отключить вход по паролю для SSH в CentOS 7
    3. Сохраните изменения и завершите работу в текстовом редакторе. Сохранить изменения конфигурационного файла SSH в CentOS 7
    4. Новый параметр вступит в силу только после перезагрузки сервиса sudo systemctl restart sshd.service . Перезапустить сервис после изменений конфигурации SSH в CentOS 7

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


    Оставьте комментарий