Настройка SSH в CentOS: пошаговое руководство

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

Принцип работы SSH

SSH — это протокол, который создает зашифрованное соединение между пользовательским компьютером, устройством и сервером. Он позволяет осуществлять удаленный доступ и контроль над компьютером и включен по умолчанию в CentOS 7.

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

Многие хостинги предлагают своим клиентам за определенную плату SSH-подключение к домашнему каталогу. Это полезно для тех, кто предпочитает работать в командной строке, или для тех, кому необходимо удаленно запускать приложения, в том числе графические.

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

Этапы настройки SSH в CentOS

Рассмотрим основные этапы настройки и наиболее удобные способы.

  1. Установка компонентов.

Обычно 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

  1. Создание SSH-ключей

Алгоритм RSA используется в SSH для генерации пары ключей. Аббревиатура образована из имен Rivest, Shamir и Adleman. Этот процесс обеспечивает оптимальную защиту клиентской и серверной частей соединения. Чтобы получить доступ по SSH к серверу, необходимо сгенерировать соответствующий набор ключей SSH, состоящий из открытого и закрытого. То есть обязательно нужно создать пару ключей.

Чтобы это сделать, откройте командную строку на пользовательском компьютере. Введите команду.

ssh-keygen

В следующей строке можно задать путь для сохранения ключа. Если просто нажать Enter без изменений, останутся настройки по умолчанию. 

Следующий этап – формирование пароля. В целях безопасности и избежания ошибок его нужно ввести 2 раза. 

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

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

Когда настроена аутентификация с помощью ключей 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"

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

  • Копирование вручную.

Узнайте ключ с помощью команды.

cat ~/.ssh/id_rsa.pub

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

Подключитесь к удалённому компьютеру, создайте каталог.

mkdir -p ~/.ssh

Введите ещё одну команду.

echo public_key_string >> ~/.ssh/authorized_keys

Так данные попадут в файл «authorized_keys». Найдите надпись «public_key_string». Вместо неё вставьте ключ, который скопировали ранее. 

Готово. Теперь аутентификация к серверу будет происходить, если ввести «ssh username@remote_host».

Всё ещё остались вопросы?