Centos настройка ssh доступ

Учебный портал

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

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

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

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

Настройки 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-адрес сервера:

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

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

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


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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Kingston kvr1333d3n9 2g характеристики

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

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

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

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

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

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

Создание пары 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/authorized_keys" , где username@remote_host — имя учетной записи и хоста удаленного компьютера. Учтите, что опция >> добавит ключ в конец файла, а не перезапишет его полностью. Поэтому введенные ранее ключи тоже будут сохранены.

Для соединения введите парольную фразу.

  • Не забудьте перезагрузить сервер через sudo service sshd restart , чтобы обновились списки ключей.
  • Ручное копирование открытого ключа

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

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

    Скопируйте его содержимое в отдельный файл.

    Подключитесь любым удобным методом к удаленному компьютеру и создайте каталог mkdir -p

    /.ssh . Команда ничего не сделает, если каталог уже существует.

    Осталось только внести данные в файл «authorized_keys». Команда echo public_key_string >>

    /.ssh/authorized_keys добавит ключ в файл или создаст сначала файл, если он отсутствует. Вместо «public_key_string» нужно вставить полученную ранее строку с ключом.

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

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

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

    Читайте также:  Java аргументы для minecraft

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

    Отыщите параметр «PasswordAuthentication» и измените значение на no .

    Сохраните изменения и завершите работу в текстовом редакторе.

    Новый параметр вступит в силу только после перезагрузки сервиса sudo systemctl restart sshd.service .

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

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

    Опубликовано 05.10.2019 · Обновлено 29.12.2019

    Содержание:

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

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

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

    По умолчанию, в некоторых системах Linux для суперпользователя root вход по SSH не работает. При попытке подключиться можно увидеть сообщение «access denied» или «permission denied». Такая настройка необходима для обеспечения большей безопасности системе. Однако, если требуется предоставить возможность подключаться по SSH от пользователя root, необходимо выполнить нижеописанное.

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

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

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

    # yum -y install mc

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

    PermitRootLogin yes

    • если параметр закомментирован, снимаем комментарий;
    • по умолчанию, значение может быть without-password или prohibit-password — оно разрешает вход для root средствами GSSAPI (не парольной аутентификации), например, смарт-карты или отпечатка пальца.

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

    # systemctl restart ssh || systemctl restart sshd

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

    # service ssh restart || service sshd restart

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

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

    По умолчанию ssh-keygen создает пару 2048-битных ключей RSA, это достаточно надежные ключи для большинства случаев (вы можете дополнительно передать флаг -b 4096, чтобы создать длинный 4096-битный ключ).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Читайте также:  Схема электронных часов своими руками

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

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

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

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

    Копирование открытого ключа по 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.

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

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

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

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

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

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

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

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

    /.ssh существует. Эта команда при необходимости создаст каталог или не сделает ничего, если он уже существует:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Внутри файла найдите директиву PasswordAuthentication. Она может быть закомментирована. Раскомментируйте строку и установите значение «no». Это отключит возможность входа в систему через SSH с использованием паролей учетных записей:

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

    # systemctl restart sshd.service

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

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

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

    Заключение:

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