Андрей Смирнов
Время чтения: ~10 мин.
Просмотров: 14

✔ CentOS 7: Настройка и использование SSH, он же Secure Shell.

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

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

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

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

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

  1. Откройте «Терминал» и пропишите там команду sudo yum -y install openssh-server openssh-clients.

Ustanovka-servera-i-klienta-SSH-v-CentOS-7-cherez-terminal.png

Подтвердите подлинность учетной записи суперпользователя, введя пароль. Учтите, что вводимые таким образом символы не отображаются в строке.</li>

Vvod-parolya-dlya-ustanovki-komponentov-SSH-v-CentOS-7-cherez-terminal.png

Запустите проверку конфигурации командой sudo chkconfig sshd on.</li>

Pervaya-komanda-dlya-aktivatsii-servisa-SSH-v-CentOS-7.png

Затем запустите сам сервис SSH, указав service sshd start.</li>

Vtoraya-komanda-dlya-aktivatsii-servisa-SSH-v-CentOS-7.png

Осталось только проверить, что задействованный по умолчанию порт открыт. Для этого используйте строку netstat -tulpn | grep :22.</li>

Proverka-rabotosposobnosti-porta-protokola-SSH-v-CentOS-7.png

</ol>

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

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

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

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

Perehod-k-konfiguratsionnomu-fajlu-SSH-v-CentOS-7.png

Вы будете ознакомлены со всеми доступными параметрами. Некоторые из них закомментированы, то есть перед параметром стоит знак #. Соответственно, убирая этот символ, вы раскомментируете параметр, и он будет действителен. Вы можете изменить стандартный порт, поменяв значение строки «Port» на любое другое. Кроме этого, рекомендуется установить второй протокол, используя «Protocol 2». Тогда повысится уровень безопасности.</li>

Redaktirovanie-konfiguratsionnogo-fajla-SSH-v-CentOS-7.png

Эти и остальные параметры изменяются только по предпочтению администратора. Детальную информацию о каждом из них вы найдете в официальной документации SSH. По завершении редактирования сохраните изменения, нажав горячую клавишу Ctrl + O.</li>

Perezapis-konfiguratsionnogo-fajla-SSH-v-CentOS-7.png

Выйти из редактора поможет комбинация Ctrl + X.</li>

Vyhod-iz-redaktirovaniya-konfiguratsionnogo-fajla-SSH-v-CentOS-7.png

Перезапустите сервис через sudo service sshd restart, чтобы внесенные изменения вступили в силу.</li>

Perezapusk-servisov-SSH-v-CentOS-7.png

Затем можете проверить статус SSH, чтобы убедиться в его работоспособности, через service sshd status.</li>

Proverka-statusa-rabotosposobnosti-servera-SSH-v-CentOS-7.png

</ol>

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

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

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

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

Sozdanie-pary-klyuchej-dlya-klienta-v-utilite-SSH-v-CentOS-7.png

После активации появится новая строка, где будет предложено указать путь для сохранения ключа. Если хотите оставить расположение по умолчанию, не вводите ничего, а просто нажмите на клавишу Enter.</li>

Vybrat-fajl-dlya-raspolozheniya-pary-klyuchej-klienta-SSH-v-CentOS-7.png

Далее создается парольная фраза. Она обеспечит защищенность от несанкционированного входа в систему. После создания пароля его потребуется повторить.</li>

Vvod-parolnoj-frazy-dlya-pary-klyuchej-utility-SSH-v-CentOS-7.png

На этом процедура генерации завершена. На экране вы увидите сам ключ и случайное изображение, присвоенное ему.</li></ol>

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

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

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

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

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

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

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

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

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

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

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

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

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

Помогла ли вам эта статья?

SSH-сервер (OpenSSH) позволяет производить удалённое управление операционной системой, а также копирование файлов между компьютерами по шифрованному каналу связи. SSH расшифровывается как Secure Shell. OpenSSH обеспечивает надежную авторизацию и безопасную передачу данных по открытым каналам связи.

Установка SSH-сервера

Для установки SSH-сервера в CentOS необходимо установить пакет openssh-server:

# sudo yum install openssh-server    

Добавляем OpenSSH в автозагрузку:

# sudo chkconfig sshd onДля дальнейшей работы нам необходимо запустить сервер OpenSSH.Запуск OpenSSH:# service sshd start

Настройки SSH-сервера

Настройки SSH-сервера хранятся в файле /etc/ssh/sshd_config.

Для приведенного выше примера он может быть следующим:

Наиболее важные опции с точки зрения безопасности:

  • Port 22 – Порт по умолчанию.
  • Protocol 2,1 – Какая реализация протокола SSH будет использоваться. Рекомендую оставить только 2.
  • ListenAddress – По умолчанию SSH сервер прослушивает все доступные интерфейсы, что абсолютно не нужно в большинстве ситуаций. Необходимо прописать сетевой интерфейс, с которого будет осуществляться управление сервером.
  • PermitRootLogin yes – По умолчанию разрешает входить по SSH суперпользователю root. Необходимо указать no.
  • AllowUsers adminsys – Данный параметр разрешает входить по SSH только перечисленным пользователям.
  • AllowGroups wheel – Группа пользователей которой можно входить по SSH, опцию можно не использовать если указана опция AllowUsers.
  • DenyUsers baduser – Данная опция запрещает вход по SSH перечисленным пользователям.
  • DenyGroups badgroup – Данная опция запрещает вход по SSH перечисленным группам пользователей.
  • MaxAuthTries 3 – Сколько раз переспрашивать пароль при неверном вводе. В данном случае SSH-сервер после 3 неверных попыток разорвет соединение с клиентом.
  • LoginGraceTime 60 – Через сколько секунд разрывать соединение при отсутствии аутентификации со стороны клиента.
  • PermitEmptyPasswords no – Разрешать использовать пустые пароли. По вполне понятным причинам значение этого параметра no.
  • PrintLastLog yes – при входе пользователя в систему по SSH ему будет показано когда и откуда последний раз был произведен вход под данным пользователем.
  • LogLevel INFO – В качестве параметра этой опции необходимо указать уровень журналирования. Возможные значения QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG1, DEBUG2, DEBUG3. Чем выше уровень журналирования, тем больше информации появится в файле регистрации событий.
  • SyslogFacility AUTHPRIV – Куда будут попадать логи. Возможные значения: DAEMON, USER, AUTH, LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.

Вход на сервер через PUTTY PORTABLE

Для начало нам нужно узнать Ip-адрес сервера:

# ifconfig

После чего вводим Ip-адрес в PUTTY указав 22 порт (стоит по умолчанию).

Указываем SSH соединение и заходим на сервер.

При входе на сервер он попросит вас зайти под своей учетной записью.

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

Установка ssh

Введите следующую команду, чтобы начать процесс установки:

sudo yum –y install openssh-server openssh-clients

Эта команда устанавливает как клиентское приложение OpenSSH, так и демон сервера OpenSSH, sshd.

install-openssh-server-client.png

В этом примере система сообщает нам, что последняя версия уже присутствует.

Конфигурация ssh

Правильная настройка файла конфигурации sshd повышает безопасность сервера. Наиболее распространенные действия для повышения безопасности — это изменение порта и отключение root-доступа.

Чтобы изменить эти настройки, откройте файл /etc/ssh/sshd_config:

sudo vim /etc/ssh/sshd_config

Получив доступ к файлу с помощью текстового редактора (в этом примере мы использовали vim), вы можете отключить root-логины и изменить номер порта по умолчанию:

  • Выключение root-доступа:
PermitRootLogin no
  • Изменение SSH порта на нестандартный:
Port 2002
port-root-login-settings.png

Не забудьте раскомментировать строки, которые вы редактируете, удалив хэштег.

Сохраните и закройте файл. Перезапустите sshd:

service sshd restart

Включение, отключение, статус ssh

Запуск демона ssh:

sudo systemctl start sshd

Проверка статуса ssh:

sudo systemctl status sshd

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

systemctl-status-sshd.png

Для остановки демона SSH введите:

systemctl stop sshd

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

systemctl-status-sshd-inactive.png

Автоматический запуск ssh

Включить автоматический запуск ssh после каждой перезагрузки можно с помощью команды systemctl:

sudo systemctl enable sshd

Отключение автоматического запуска:

sudo systemctl disable sshd

Используемые источники:

  • https://lumpics.ru/configuring-ssh-in-centos-7/
  • https://poligon218.ru/2017/10/23/настройка-доступа-по-ssh-в-centos/
  • https://mordeniuss.ru/install-configure-ssh-centos/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации