- Можно ли разрешить или запретить доступ по SSH определенному пользователю или группе?
- 1. Разрешить SSH-доступ пользователю или группе
- 2. Запретить доступ по SSH пользователю или группе
- 3. Отключить вход в систему через SSH-root
- Использование файла конфигурации SSH
- Подготовка
- Расположение файла конфигурации SSH
- Структура и шаблоны файла конфигурации SSH
- Пример файла конфигурации SSH
- Пример файла конфигурации общего SSH
- Переопределить параметр файла конфигурации SSH
- Выводы
- Файл конфигурации SSH
- Using the SSH Config File
- Это руководство охватывает основы файла конфигурации клиента SSH и объясняет некоторые из наиболее распространенных параметров конфигурации.
- Расположение файла конфигурации SSH
- Структура и шаблоны файлов SSH Config
- Пример файла конфигурации SSH
- Пример общего файла конфигурации SSH
- Переопределить опцию файла конфигурации SSH
- Вывод
Можно ли разрешить или запретить доступ по SSH определенному пользователю или группе?
Это краткое руководство проведет вас через шаги, чтобы разрешить или запретить SSH-доступ определенному пользователю или группе в Linux. Оно будет полезно, если вы хотите разрешить конкретному пользователю выполнять только определенный набор команд. В этой статье мы собираемся включить или отключить доступ по SSH для пользователя или группы, внеся несколько изменений в файл конфигурации SSH по умолчанию.
В конфигурационном файле openSSH по умолчанию есть две директивы для разрешения и запрета доступа по SSH определенным пользователям или группе. Во-первых, давайте посмотрим, как разрешить или включить SSH-доступ для пользователя и группы. Обратите внимание, что все приведенные ниже команды должны запускаться от имени пользователя root или sudo.
1. Разрешить SSH-доступ пользователю или группе
Чтобы разрешить доступ по SSH для определенного пользователя, например sk, отредактируйте файл sshd_config:
Нажмите «i», чтобы войти в режим вставки и добавить или изменить следующую строку:
Замените «sk» своим именем пользователя. Обратите внимание на отступы между «AllowUsers» и «sk». Вы должны использовать Tab вместо пробела. Значение — добавьте слово «AllowUsers» и нажмите клавишу Tab, а затем укажите имя пользователя.
Вы также можете указать более одного пользователя, как показано ниже.
Чтобы разрешить всю группу, например, root , добавьте/отредактируйте следующую строку:
Этот параметр позволит всем членам «корневой» группы подключаться к серверу Linux по ssh.
Нажмите клавишу ESC, чтобы выйти из режима вставки, и введите : wq, чтобы сохранить и выйти из файла конфигурации SSH. Перезапустите службу SSH, чтобы изменения вступили в силу.
Теперь пользователю sk и всем членам «корневой» группы разрешено подключаться к вашему Linux-серверу по ssh. Остальные пользователи (кроме sk и членов группы «root») не имеют доступа к системе через ssh.
Чтобы проверить это, попробуйте подключиться к серверу Linux по ssh от имени любого из запрещенных пользователей:
Вы получите следующее сообщение об ошибке:
2. Запретить доступ по SSH пользователю или группе
Чтобы отключить или запретить доступ по SSH для пользователя или группы, вам необходимо добавить/изменить следующие директивы в файле sshd_config вашего удаленного сервера.
Чтобы запретить доступ по SSH конкретному пользователю с именем «sk», отредактируйте файл sshd_config:
Добавьте/отредактируйте следующую строку в файле sshd_config.
Убедитесь, что отступы правильные. Не используйте клавишу пробела. Нажмите клавишу Tab и добавьте имя пользователя.
Аналогичным образом, чтобы запретить доступ по SSH нескольким пользователям, укажите имена пользователей через пробел, как показано ниже.
Аналогичным образом, чтобы запретить доступ по SSH для всей группы, например root , добавьте:
Сохраните и выйдите из файла конфигурации ssh. Перезапустите службу ssh, чтобы изменения вступили в силу.
Теперь попробуйте ssh на свой Linux-компьютер из заблокированной учетной записи пользователя, например sk:
Вы получите следующее сообщение:
3. Отключить вход в систему через SSH-root
Доступ с root-доступом по ssh считается плохой практикой с точки зрения безопасности . Поэтому настоятельно рекомендуется отключить вход в систему SSH Root для защиты вашей системы.
Чтобы отключить вход в систему root ssh, отредактируйте файл sshd_config:
Найдите следующую строку, раскомментируйте ее и установите значение no .
Перезапустите службу SSH, чтобы изменения вступили в силу немедленно:
Теперь вы знаете, как предоставлять и ограничивать доступ по SSH для определенных пользователей или групп в Linux. Вы также узнали, как запретить или отключить вход root по SSH в Linux. Это одна из рекомендуемых мер безопасности, которую должен применять каждый администратор Linux при настройке сервера Linux.
Источник
Использование файла конфигурации SSH
Если вы регулярно подключаетесь к нескольким удаленным системам через SSH, вы обнаружите, что запомнить все удаленные IP-адреса, разные имена пользователей, нестандартные порты и различные параметры командной строки сложно, если вообще возможно.
Один из вариантов — создать псевдоним bash для каждого подключения к удаленному серверу. Однако есть другое, гораздо лучшее и более простое решение этой проблемы. OpenSSH позволяет вам создать файл конфигурации для каждого пользователя, в котором вы можете хранить различные параметры SSH для каждой удаленной машины, к которой вы подключаетесь.
В этом руководстве рассматриваются основы файла конфигурации клиента SSH и объясняются некоторые из наиболее распространенных параметров конфигурации.
Подготовка
Мы предполагаем, что вы используете систему Linux или macOS с установленным клиентом OpenSSH.
Расположение файла конфигурации SSH
Файл конфигурации на стороне клиента OpenSSH называется config и хранится в каталоге .ssh в домашнем каталоге пользователя.
/.ssh создается автоматически, когда пользователь запускает команду ssh в первый раз. Если каталог не существует в вашей системе, создайте его с помощью следующей команды:
По умолчанию файл конфигурации SSH может не существовать, поэтому вам может потребоваться создать его с помощью сенсорной команды :
Этот файл должен быть доступен для чтения и записи только пользователю и не должен быть доступен для других:
Структура и шаблоны файла конфигурации SSH
Файл конфигурации SSH имеет следующую структуру:
Содержимое файла конфигурации клиента SSH организовано в строфы (разделы). Каждый раздел начинается с директивы Host и содержит определенные параметры SSH, которые используются при установлении соединения с удаленным SSH-сервером.
Отступ не требуется, но рекомендуется, так как он облегчает чтение файла.
Директива Host может содержать один шаблон или список шаблонов, разделенных пробелами. Каждый шаблон может содержать ноль или более непробельных символов или один из следующих спецификаторов шаблона:
- * — соответствует нулю или более символам. Например, Host * соответствует всем хостам, а 192.168.0.* Соответствует хостам в подсети 192.168.0.0/24 .
- ? — Соответствует ровно одному символу. Шаблон, Host 10.10.0.? соответствует всем хостам в 10.10.0.8 .
- ! — При использовании в начале шаблона аннулирует совпадение. Например, Host 10.10.0.* !10.10.0.5 матчи любого хоста в 10.10.0.0/24 подсети , кроме 10.10.0.5 .
Клиент SSH читает раздел файла конфигурации за разделом, и, если совпадают несколько шаблонов, параметры из первого совпадающего раздела имеют приоритет. Поэтому более специфичные для хоста объявления должны быть даны в начале файла, а более общие переопределения — в конце файла.
Вы можете найти полный список доступных опций ssh, набрав man ssh_config в своем терминале или посетив справочную страницу ssh_config .
Файл конфигурации SSH также читается другими программами, такими как scp , sftp и rsync .
Пример файла конфигурации SSH
Теперь, когда мы рассмотрели основы файла конфигурации SSH, давайте посмотрим на следующий пример.
Обычно при подключении к удаленному серверу через SSH вы указываете имя удаленного пользователя, имя хоста и порт. Например, чтобы войти в систему как пользователь с именем john на хост с именем dev.example.com на порту 2322 из командной строки, вы должны ввести:
Чтобы подключиться к серверу с использованием тех же параметров, которые указаны в приведенной выше команде, просто набрав ssh dev , поместите следующие строки в свой «
Теперь, когда вы вводите ssh dev , клиент ssh будет читать файл конфигурации и использовать данные подключения, указанные для хоста dev :
Пример файла конфигурации общего SSH
Этот пример дает более подробную информацию о шаблонах хоста и приоритетах опций.
Возьмем следующий пример файла:
Когда вы вводите ssh targaryen , клиент ssh читает файл и применяет параметры из первого совпадения, то есть Host targaryen . Затем он проверяет следующие строфы одну за другой на соответствие шаблону. Следующим подходящим является Host * !martell (то есть все хосты, кроме martell ), и он применит параметр подключения из этой строфы. Последнее определение Host * также совпадает, но клиент ssh будет использовать только параметр Compression поскольку параметр User уже определен в разделе Host targaryen .
Полный список параметров, используемых при ssh targaryen выглядит следующим образом:
При запуске ssh tyrell подходящими шаблонами хоста являются: Host tyrell , Host *ell , Host * !martell и Host * . В этом случае используются следующие параметры:
Если вы запустите ssh martell , соответствующие шаблоны хостов будут следующими: Host martell , Host *ell и Host * . В этом случае используются следующие параметры:
Для всех остальных подключений клиент ssh будет использовать параметры, указанные в разделах Host * !martell и Host * .
Переопределить параметр файла конфигурации SSH
Клиент ssh читает свою конфигурацию в следующем порядке приоритета:
- Параметры, указанные в командной строке.
- Параметры, определенные в
/.ssh/config .
Если вы хотите переопределить один параметр, вы можете указать его в командной строке. Например, если у вас есть следующее определение:
и вы хотите использовать все другие параметры, но для подключения от имени пользователя root вместо john просто укажите пользователя в командной строке:
Параметр -F ( configfile ) позволяет указать альтернативный файл конфигурации для каждого пользователя.
Чтобы указать ssh клиенту игнорировать все параметры, указанные в файле конфигурации ssh, используйте:
Выводы
Мы показали вам, как настроить пользовательский файл конфигурации ssh. Вы также можете настроить аутентификацию на основе ключа SSH и подключаться к своим серверам Linux без ввода пароля.
По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию добавляет дополнительный уровень безопасности на ваш сервер, снижая риск автоматических атак.
Если у вас есть вопросы, оставьте комментарий ниже.
Источник
Файл конфигурации SSH
Using the SSH Config File
Это руководство охватывает основы файла конфигурации клиента SSH и объясняет некоторые из наиболее распространенных параметров конфигурации.
Если вы регулярно подключаетесь к нескольким удаленным системам через SSH, вы обнаружите, что запомнить все удаленные IP-адреса, разные имена пользователей, нестандартные порты и различные параметры командной строки сложно, если не невозможно.
Один из вариантов — создать псевдоним bash для каждого подключения к удаленному серверу. Однако есть другое, гораздо лучшее и более простое решение этой проблемы. OpenSSH позволяет вам настроить файл конфигурации для каждого пользователя, где вы можете хранить различные параметры SSH для каждого удаленного компьютера, к которому вы подключаетесь.
Мы предполагаем, что вы используете систему Linux или macOS с установленным клиентом OpenSSH.
Расположение файла конфигурации SSH
Файл конфигурации OpenSSH на стороне клиента имеет имя config и хранится в .ssh каталоге в домашнем каталоге пользователя.
/.ssh каталог создается автоматически, когда пользователь запускает ssh команду в первый раз. Если каталог не существует в вашей системе, создайте его с помощью команды ниже:
По умолчанию файл конфигурации SSH может не существовать, поэтому вам может потребоваться создать его с помощью сенсорной команды :
Этот файл должен быть доступен для чтения и записи только пользователю и недоступен для других:
Структура и шаблоны файлов SSH Config
Файл конфигурации SSH имеет следующую структуру:
Содержимое файла конфигурации клиента SSH организовано в разделы (разделы). Каждый раздел начинается с Host директивы и содержит конкретные параметры SSH, которые используются при установлении соединения с удаленным сервером SSH.
Отступы не требуются, но рекомендуется, поскольку они облегчают чтение файла.
Host Директива может содержать один шаблон или разделенных пробелами список шаблонов. Каждый шаблон может содержать ноль или более непробельных символов или один из следующих спецификаторов шаблона:
- * — Соответствует нулю или более символов. Например, Host * сопоставляет все узлы, а 192.168.0.* сопоставляет узлы в 192.168.0.0/24 подсети.
- ? — соответствует ровно одному персонажу. Шаблон, Host 10.10.0.? соответствует всем хостам в 10.10.0.2 диапазоне.
- ! — При использовании в начале паттерна он отменяет совпадение. Например, Host 10.10.0.* !10.10.0.5 соответствует любому хосту в 10.10.0.0/24 подсети, кроме 10.10.0.5 .
Клиент SSH считывает раздел файла конфигурации по разделу, и, если совпадают несколько шаблонов, параметры из первого соответствующего раздела имеют приоритет. Поэтому в начале файла должны быть даны более специфичные для хоста объявления, а в конце файла — более общие переопределения.
Вы можете найти полный список доступных опций ssh, набрав man ssh_config в своем терминале или посетив страницу справки ssh_config .
Файл конфигурации SSH также читается другими программами , такими как scp , sftp и rsync .
Пример файла конфигурации SSH
Теперь, когда мы рассмотрели основы файла конфигурации SSH, давайте рассмотрим следующий пример.
Обычно при подключении к удаленному серверу через SSH вы указываете имя удаленного пользователя, имя хоста и порт. Например, чтобы войти в систему под именем пользователя с именем john хоста, вызываемого через dev.example.com порт 2322 из командной строки, введите:
Чтобы подключиться к серверу, используя те же параметры, что и в приведенной выше команде, просто набрав ssh dev , поместите в «
/.ssh/config файл следующие строки :
Теперь, когда вы ssh dev печатаете, клиент ssh будет читать файл конфигурации и использовать сведения о соединении, которые указаны для dev хоста:
Пример общего файла конфигурации SSH
Этот пример дает более подробную информацию о шаблонах хостов и приоритетах опций.
Давайте возьмем следующий пример файла:
Когда вы ssh targaryen печатаете, клиент ssh читает файл и применяет параметры из первого совпадения, которое есть Host targaryen . Затем он проверяет следующие строфы один за другим на соответствие шаблону. Следующий соответствующий Host * !martell (это означает, что все хосты, кроме martell ), и он будет применять параметр подключения из этого раздела. Последнее определение Host * также совпадает, но клиент ssh выберет только Compression опцию, потому что эта User опция уже определена в разделе Host targaryen .
Полный список параметров, используемых при вводе, ssh targaryen выглядит следующим образом:
При работе ssh tyrell в соответствующие структуры хозяева: Host tyrell , Host *ell , Host * !martell и Host * . Варианты, используемые в этом случае:
Если вы бежите ssh martell , шаблоны соответствия хозяева: Host martell , Host *ell и Host * . Варианты, используемые в этом случае:
Для всех других соединений, клиент SSH будет использовать параметры , указанные в Host * !martell и Host * разделах.
Переопределить опцию файла конфигурации SSH
Клиент ssh считывает свою конфигурацию в следующем порядке приоритета:
- Параметры, указанные в командной строке.
- Параметры, определенные в
/.ssh/config .
Если вы хотите переопределить один параметр, вы можете указать его в командной строке. Например, если у вас есть следующее определение:
и вы хотите использовать все остальные параметры, кроме как для подключения в качестве пользователя, root а не john просто указать пользователя в командной строке:
Опция -F ( configfile ) позволяет вам указать альтернативный файл конфигурации для каждого пользователя.
Чтобы указать ssh клиенту игнорировать все параметры, указанные в файле конфигурации ssh, используйте:
Вывод
Мы показали, как настроить пользовательский конфигурационный файл ssh. Вы также можете настроить аутентификацию на основе ключей SSH и подключаться к серверам Linux без ввода пароля.
По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию добавляет дополнительный уровень безопасности вашему серверу, снижая риск автоматических атак.
Источник