Как разрешить пользователю root заходить по SSH в системах Linux Ubuntu
По умолчанию, в некоторых системах Linux (например, Ubuntu) для суперпользователя root вход по SSH не работает. При попытке подключиться можно увидить сообщение «access denied» или «permission denied». Такая настройка необходима для обеспечения большей безопасности системе. Однако, если требуется предоставить возможность подключаться по SSH от пользователя root, необходимо выполнить нижеописанное.
* Инструкция подойдет для большинства UNIX-систем.
Для начала, необходимо создать пароль пользователю root следующей командой:
После нажатия Enter вводим дважды пароль.
Теперь открываем настройки SSH:
и редактируем параметр PermitRootLogin — задаем значение yes:
* если параметр закомментирован, снимаем комментарий.
** по умолчанию, значение может быть without-password или prohibit-password — оно разрешает вход для root средствами GSSAPI (не парольной аутентификации), например, смарт-карты или отпечатка пальца.
Перезапускаем ssh server:
systemctl restart ssh || systemctl restart sshd
или в старых версиях без systemd:
service ssh restart || service sshd restart
Как подключиться по SSH
SSH — это основной протокол для удаленного управления серверами на базе операционной системы Linux. Все действия при подключении к SSH выполняются в командной строке, но при достаточном уровне знаний и привилегий в системе там можно сделать практически все что угодно, в отличие от того же FTP где можно только передавать и редактировать файлы.
Если вы покупаете VPS сервер или продвинутый хостинг, обычно в письме вместе с другими данными авторизации есть данные доступа по SSH. В этой статье мы рассмотрим как подключиться по SSH к серверу из Linux или Windows.
Что такое SSH?
Поскольку эта статья рассчитана именно на новичков, то перед тем, как перейти дальше давайте подробнее разберемся что из себя представляет SSH. Исторически так сложилось что на большинстве серверов используется операционная система Linux, во многом этому посодействовала ее бесплатность. Графический интерфейс на серверах Linux не используется для экономии ресурсов, поэтому единственным способом администрирования сервера остается командная строка.
Но это не является недостатком, потому что в командной строке Linux можно сделать больше чем графическом интерфейсе. Протокол SSH позволяет вам выполнять команды в удаленной системе так, как будто вы это делаете в своей системе. Вам доступен буфер обмена, вы вводите команды и можете использовать их вывод. Недоступны разве что файлы из вашей файловой системы. Например, когда вы подключитесь к серверу по SSH из Ubuntu, то все будет выглядеть так, как будто вы открыли терминал в своей системе.
Как подключиться по SSH
Для подключения по SSH нам необходимо знать такие данные:
- ip адрес сервера, к которому мы собираемся подключится;
- порт, на котором ожидает подключения SSH сервер, по умолчанию используется 22, но в целях безопасности порт подключения ssh часто изменяют;
- имя и пароль пользователя на удаленном сервере.
Больше ничего не нужно, обычно эти данные присылают в письме вместе с описанием VPS. Теперь перейдем к практике.
1. Подключение через SSH в Linux
В Linux подключение по SSH выполняется с помощью утилиты ssh. Мы более подробно рассматривали работу с ней в статье как пользоваться ssh. Для подключения к удаленному компьютеру ее синтаксис будет выглядеть следующим образом:
$ ssh имя_пользователя @ айпи_адрес
Это самый простой вариант, если вам также нужно задать порт, используйте опцию -p:
$ ssh имя_пользователя @ айпи_адрес -p порт
Чтобы выполнить подключение по SSH Linux нажмите Ctrl+Alt+T для открытия терминала и наберите команду, заменив нужные значения:
Или, с нестандартным портом:
ssh sergiy@192.168.1.2 -p 2223
Если ip_адрес и порт правильные, то на следующем шаге программа попросит у вас ввести пароль:
Если пытаетесь подключится через SSH к этому серверу первый раз, то утилита также попросит подтвердить добавление нового устройства в свой список известных устройств, здесь нужно набрать yes и нажать Enter:
Теперь вы подключены, и все вводимые далее команды будут выполнены на удаленном сервере:
Если же произошла ошибка и IP адрес или порт введены неверно, то вы получите ошибку Connection Refused:
Просто убедитесь что порт введен верно. Если это ваш сервер, то, возможно на нем еще нужно разрешить подключение SSH в брандмауэре. В Ubuntu/Debian для этого на удаленном сервере выполните:
sudo ufw allow 22/tcp
firewall-cmd —permanent —zone=public —add-port=22/tcp
Если вы используете другой порт для SSH, то замените 22 на свой порт. Для удобства подключения по SSH в дальнейшем можно настроить авторизацию по ключу ssh, чтобы не вводить каждый раз пароль.
Теперь вы знаете как подключиться по ssh linux и решить проблемы с подключением. А теперь перейдем к Windows.
2. Подключение через SSH в Windows
Раньше подключение по SSH из Windows выполнялось только с помощью сторонних утилит, например PuTTY. Но в Windows 10 был добавлен встроенный OpenSSH клиент и работает он точно так же, как и в Linux. По умолчанию этот компонент не активирован. Для его установки откройте Параметры -> Приложения:
Затем выберите Управление дополнительными компонентами:
Здесь нажмите добавить новый компонент и в открывлемся меню выберите OpenSSH Client и нажмите Устанвоить:
Дальше вернитесь назад и дождитесь завершения установки. После того, как SSH клиент будет установлен нужно обязательно перезагрузить компьютер.
После перезагрузки нажмите Win+R чтобы открыть окно запуска команд и наберите в нем cmd:
Далее нажмите Enter. Перед вами откроется командная строка Windows. Здесь можно использовать утилиту ssh. Синтаксис у нее абсолютно такой же, как и для Linux:
ssh имя_пользователя @ айпи_адрес -p порт
Например, такой командой можно подключится по SSH к Raspberry Pi, который находится в вашей локальной сети по адресу 192.168.1.5:
Утилита предложит добавить устройство в список известных:
Затем предложит ввести пароль:
Все следующие команды будут выполняться уже на Raspberry Pi или другой удаленной машине, к которой вы подключились.
Теперь подключиться к серверу по ssh из этой операционной системы также просто как и из Linux.
Выводы
В этой статье мы рассмотрели как выполняется подключение к серверу по SSH из Linux или Windows. Как видите, это очень просто. А дальше, для работы с удаленным сервером вам понадобятся команды терминала Linux.
Information Security Squad
stay tune stay secure
Разрешить или запретить доступ SSH определенному пользователю или группе в Linux
В этом руководстве мы рассмотрим, как разрешить или запретить доступ SSH к определенному пользователю или группе в Linux
Файл конфигурации OpenSSH по умолчанию имеет две директивы для разрешения и запрета доступа SSH к определенному пользователю (пользователям) или группе.
Во-первых, мы увидим, как разрешить SSH-доступ для определенного пользователя, например sk.
Обратите внимание, что все команды должны выполняться как пользователь root.
Разрешить SSH Доступ пользователю или группе
Перейдите на ваш удаленный сервер и отредактируйте файл sshd_config:
$ sudo vi /etc/ssh/sshd_config
Добавьте или отредактируйте следующую строку:
Замените «sk» на свое имя пользователя.
Вы также можете указать несколько пользователей, как показано ниже.
AllowUsers sk itsecforu
Чтобы разрешить целую группу, скажем, например, root, добавьте / отредактируйте следующую строку:
Те, кто входит в группу, могут передавать ssh на удаленный сервер.
Сохраните и закройте конфигурационный файл SSH.
Перезапустите службу SSH, чтобы изменения вступили в силу.
$ sudo systemctl restart sshd
Теперь пользователям sk, itsecfor или всем пользователям под группой «root» разрешено ssh на ваш удаленный сервер. Другие пользователи (кроме sk, itsecforu и пользователи «root») не могут.
Если вы попытаетесь передать ssh на удаленный сервер с помощью любого из недопустимых пользователей, вы получите следующее сообщение об ошибке:
Теперь давайте рассмотрим, как запретить / отключить доступ ssh определенному пользователю или группе.
Запретить SSH Доступ пользователю или группе
Чтобы отключить или запретить доступ SSH к любому пользователю или группе, вам необходимо добавить / изменить следующие директивы в файле sshd_config вашего удаленного сервера.
Чтобы запретить доступ SSH к определенному пользователю с именем «sk», отредактируйте файл sshd_config:
Добавьте / отредактируйте следующую строку в файле sshd_config.
Аналогично, чтобы запретить доступ SSH нескольким пользователям, укажите имена пользователей как показано ниже.
DenyUsers sk itsecforu
Чтобы запретить доступ SSH ко всей группе, например root, добавьте:
Сохраните и закройте файл конфигурации ssh.
Перезапустите службу ssh, чтобы внести изменения.
$ sudo systemctl restart sshd
если вы пытаетесь использовать ssh для сервера с использованием запрещенных пользователей, например sk:
Появится следующее сообщение:
Что еще более важно, вы также должны отключить вход пользователя root.
Доступ root по ssh считается плохой практикой с точки зрения безопасности.
Чтобы отключить root ssh login, отредактируйте файл sshd_config:
Найдите следующую строку, Раскомментируйте ее и установите значение равным no.
Перезапустите службу SSH. Вы только что отключили вход ssh root.