- Как удаленно управлять сервером Ubuntu с помощью SSH
- Установка SSH-соединения
- Необходимые условия
- Установка сервера OpenSSH
- Обновление базы данных пакетов
- Настройка сервера SSH
- Проверка состояния службы SSH
- Доступ к серверу Ubuntu Linux через SSH-клиент
- Подключение к Ubuntu из Windows с помощью SSH-клиента Putty
- Похожие записи:
- SSH для новичков
- Введение
- SSH-сервер
- SSH-клиент
- Установка OpenSSH на Ubuntu
- Проверка SELinux
- Подключение к виртуальной машине с типом подключения NAT
- Подключение по ssh через PuTTY
- Подключение по ssh через Командную строку Windows (cmd)
- Подключение к виртуальной машине с типом подключение Сетевой мост
- Установка статического ip
- Подключение по ssh
- Заключение
- Ресурсы, которые использовал
Как удаленно управлять сервером Ubuntu с помощью SSH
Вам часто может потребоваться доступ к удаленным серверам для администрирования, управления и устранения неполадок, и существует несколько способов сделать это. Вы можете использовать telnet для входа на удаленные серверы; FTP позволяет передавать файлы между различными серверами. Однако эти программы недостаточно безопасны для подключения к критическим серверам. SSH, secure shell — это криптографический сетевой протокол, с помощью которого вы можете получить безопасный доступ к сетевым сервисам через незащищенную сеть. SSH позволяет получить доступ к серверам через Терминал и различные функции командной строки. Это полезно, если вы хотите получить доступ к серверу и управлять им удаленно, используя безопасный способ.
В этой статье я опишу, как можно удаленно управлять сервером Linux с помощью SSH.
Для этой статьи я использую следующие машины:
Установка SSH-соединения
Прежде чем установить безопасное удаленное соединение с сервером Ubuntu с помощью SSH, необходимо выполнить некоторые основные требования.
Необходимые условия
Ниже перечислены некоторые предварительные условия:
- Удаленный сервер должен быть включен и иметь стабильное сетевое подключение.
- Вам потребуется IP-адрес сервера.
- Удаленный сервер должен быть доступен через этот IP-адрес. Вы можете проверить это с помощью команды Ping.
- Инструменты SSH-сервера и SSH-клиента должны быть установлены в ОС сервера и клиента соответственно.
- Вам потребуется имя пользователя и пароль удаленного сервера.
- Брандмауэр не должен блокировать соединение.
Установка сервера OpenSSH
Для удаленного управления сервером Ubuntu по SSH вам понадобится программное обеспечение SSH-сервера. Однако, прежде чем приступить к установке OpenSSH, сначала обновите список пакетов, чтобы получить самые актуальные репозитории.
Обновление базы данных пакетов
Нажмите Ctrl + Alt + T, чтобы запустить Терминал в Ubuntu. Введите следующую команду в Терминале для обновления базы данных пакетов.
После обновления репозиториев выполните эту команду в Терминале, чтобы проверить наличие обновления для установленных пакетов.
После обновления пакетов выполните следующую команду в Терминале:
sudo apt-get install openssh-server
Настройка сервера SSH
Теперь вам нужно выполнить некоторые основные и необходимые настройки SSH-сервера в файле ssh_config. Для этого выполните следующую команду в Терминале, чтобы открыть ssh_config:
sudo nano /etc/ssh/sshd_config
Здесь вы можете выполнить различные настройки конфигурации. Сейчас мы выполним только базовую и начальную настройку, как показано на скриншоте ниже. Раскомментируйте следующую строку в файле ssh_config:
Под номером порта добавьте строку MaxAuthTries. Вы можете ввести здесь любое число, которое будет разрешать максимальное количество попыток входа в систему.
Закончив с базовой конфигурацией, сохраните файл и выйдите из редактора Nano.
Проверка состояния службы SSH
Чтобы проверить состояние SSH-сервера, запущен он или нет, вы можете выполнить следующую команду в Терминале:
Вышеприведенная команда подтверждает, что служба SSH активна и запущена.
Теперь SSH-сервер настроен на прием удаленных соединений с различных компьютеров с помощью SSH-клиента.
Если служба SSH не запущена, вы можете запустить ее вручную, выполнив следующую команду в Терминале:
Вы также можете остановить службу SSH, выполнив следующую команду в Терминале:
Доступ к серверу Ubuntu Linux через SSH-клиент
Вы можете получить доступ к серверу Linux через SSH-клиент в ОС Linux или Windows:
Если вы используете операционную систему Linux, вы можете получить доступ к SSH серверу с помощью программы Terminal.
Нажмите Ctrl+Alt+T для запуска программы Terminal. Выполните команду в следующем синтаксисе для доступа к удаленному серверу:
ssh [удаленный сервер] [номер порта].
Где [remote server] — имя или IP удаленного сервера, а [Port Number] — удаленный порт для SSH-соединений.
Также вы можете ввести команду вместе с именем пользователя удаленного сервера в следующем синтаксисе:
ssh [имя пользователя]@[удаленный сервер] [номер порта]
Где [имя пользователя] — это имя пользователя удаленного сервера.
Введите yes, когда появится сообщение с вопросом, хотите ли вы продолжить подключение. Это добавит пользователя в список известных хостов. При следующем подключении это сообщение больше не появится.
Когда появится запрос на пароль, введите пароль удаленного пользователя.
Теперь вы подключены к удаленному серверу. Вы можете запустить любую команду и использовать ее так же, как и при доступе к локальному серверу.
Подключение к Ubuntu из Windows с помощью SSH-клиента Putty
Если вы используете операционную систему Windows, вы можете использовать putty в качестве SSH-клиента.
Установите putty в вашей операционной системе Window. Чтобы запустить Putty, введите putty в строке поиска Windows и выберите putty.exe из наиболее подходящих результатов.
В окне конфигурации putty, в категории сеансов, введите IP-адрес удаленного сервера в поле с надписью Имя хоста (или IP-адрес).
В разделе Тип соединения выберите радиокнопку SSH. Если вы используете порт, отличный от стандартного порта 22, обязательно измените его, в противном случае оставьте стандартный порт 22. Затем нажмите кнопку Открыть, чтобы разрешить соединение.
Откроется терминал с запросом на вход. Введите имя пользователя и пароль пользователя удаленного сервера.
После успешного входа на удаленный сервер вы можете выполнить любую команду для управления им.
Вот как вы можете легко подключить серверы Linux с помощью SSH. Теперь вы можете управлять и администрировать сервер удаленно. SSH — это не только безопасный метод подключения к серверу, но и удобный.
Похожие записи:
SSH для новичков
Программистов, сисадминов, devops’ов, тестировщиков часто объединяет использование некоторых общих технологий. Например, возможность иметь удалённый доступ к серверу пригодилось бы любому из указанной выше анекдотичной компании. Поэтому в этой статье мы рассмотрим основы работы с протоколом SSH на базовом уровня (без генерации ключей, подписей, мам, пап и кредитов). «Продвинутое» использование посмотрим уже отдельно, в следующий раз. Материал подготовил Макс, автор YouTube-канала PyLounge. Поехали!
Введение
SSH (Secure SHell — защищенная оболочка) — сетевой протокол прикладного уровня, предназначенный для безопасного удаленного доступа к различным системам (Linux, Windows, Mac).
Данный протокол шифрует всю передаваемую информацию по сети. По умолчанию, используется 22-й порт. В основном он нужен для удаленного управления данными пользователя на сервере, запуска служебных команд, работы в консольном режиме с базами данных.
Эта служба была создана в качестве замены не зашифрованному Telnet и использует криптографические техники, чтобы обеспечить, что всё сообщение между сервером и пользователем было зашифровано.
Чтобы установить SSH-соединение, необходимы два компонента: SSH-сервер и SSH-клиент. Сервер прослушивает определенный порт (по умолчанию это порт 22) и при успешной аутентификации дает доступ пользователю. Все команды, которые используются на SSH-клиенте, отправляются через защищенный канал связи на SSH-сервер, на котором они выполняются и откуда отправляют результат работы обратно клиенту.
SSH-сервер
Устанавливается на управляемой операционной системе и принимает входящие подключения от клиентских машин, проверяя соединение одним из способов:
- по IP-адресу клиента, что не слишком безопасно из-за риска подмены;
- по публичному ключу клиента и имени пользователя. Нужно создать приватный (закрытый) и публичный (открытый) ключ. Зашифровав информацию одним ключом, можно расшифровать ее только другим;
- по паролю клиента, который передается в зашифрованном виде. Это один из наиболее распространенных вариантов. Вводить его нужно при каждом подключении.
Платные и бесплатные SSH-серверы есть для всех распространенных ОС:
- BSD — OpenSSH;
- Linux — dropbear, lsh-server, openssh-server;
- Windows — freeSSHd, copssh, WinSSHD, OpenSSH и т. д.
SSH-клиент
Используется для входа на удаленный сервер и выполнения команд. Через клиент выполняется управление удаленным компьютером.
SSH-клиенты разработаны для всех ОС. Имеют платные и бесплатные версии:
- Linux/BSD — openssh-client, putty, ssh, Vinagre;
- Windows — PuTTY, SecureCRT, ShellGuard;
- Android — connectBot.
Встроенный SSH-клиент Windows, основанный на OpenSSH, предустановлен в ОС, начиная с Windows 10 1809.
Установка OpenSSH на Ubuntu
Установка с помощью менеджера пакетов apt-get:
sudo apt-get install openssh-server
Проверка SELinux
Security Enhanced Linux, или SELinux – это усовершенствованный механизм контроля доступа, встроенный в большинство современных дистрибутивов Linux. Первоначально он был разработан Агентством национальной безопасности США для защиты компьютерных систем от вторжения злоумышленников и взлома. SELinux также может помешать работе с ssh. Поэтому необходимо убедиться, что он отключен, либо отключить его.
Устанавливаем доп. инструменты для работы с сетью и настройками безопасности:
sudo apt-get install policycoreutils sudo apt-get install net-tools
Проверяем статус SELinux. Состояние должно быть disable .
Подключение к виртуальной машине с типом подключения NAT
Если виртуальная машина использует тип сетевого подключения NAT, то первоначально необходимо настроить проброс портов. Пробросим порт хоста 2222 (или любой свободный) на гостевой порт виртуальной машины номер 22 (порт ssh по умолчанию).
После этого мы можем подключиться из Windows к нашей виртуальной машине.
Подключение по ssh через PuTTY
Т.к. в качестве сетевого подключения у виртуальной машины используется NAT, при подключении мы будем указывать петлевой адрес localhost (127.0.0.1) c портом, на который был назначен проброс.
После этого вводим имя пользователя (пользователь должен существовать в linux. ) и пароль от этого пользователя.
Подключение по ssh через Командную строку Windows (cmd)
Запускаем командную строку сочетанием клавиш Win + R . В открывшемся окне указываем cmd. Нажимаем OK.
В общем видео подключение по ssh имеет вид:
ssh имя_пользователя@ip_адрес_компьютера_к_которому_подключаемся -p порт
Если для подключения используется стандартный порт ssh — 22, то порт можно не указывать.
В открывшемся окне вводим команду:
Вводим пароль пользователя. Всё. Вы великолепны!
Подключение к виртуальной машине с типом подключение Сетевой мост
С типом подключения Сетевой мост необходимо выдать статический ip для Linux системы. Дальнейшее подключение будет уже по этому, выданному ip, а не через localhost.
Установка статического ip
Начиная с выпуска Ubuntu 17.10 NetPlan теперь это инструмент настройки сети по умолчанию для управления настройками сети, заменяющий файл конфигурации /etc/network/interfaces , который использовался в предыдущих версиях.
Файлы конфигурации для Netplan находятся в каталоге /etc/netplan и написаны на языке YAML. В этом каталоге вы найдете файлы конфигурации YAML.
Откроем конфигурационный файл:
Отредактируем конфигурационный файл:
network: version: 2 renderer: NetworkManager ethernets: enp0s3: dhcp4: false addresses: [10.40.0.224/24] gateway4: 10.40.0.1 nameservers: addresses: [10.2.0.8, 10.2.0.3]
- ethernets — указывает на проводное Ethernet подключение;
- enp0s3 — имя сетевого интерфейса (можно узнать командой ifconfig);
- dhcp4 — автоматическая выдача ipv4-адреса с помощью службы dhcp (для ipv6 указывать dhcp6);
- addresses — ip-адрес и маска сети, которые назначаются компьютеру;
- gateway4 — шлюз по умолчанию;
- nameservers — список dns-серверов.
Посмотреть настройки можно с хостовой машины на Windows с помощью команды ipconfig /all.
Чтобы применить изменения и перезагрузить сеть, вводим команду:
Подключение по ssh
Запускаем командную строку сочетанием клавиш Win + R . В открывшемся окне указываем cmd. Нажимаем OK.
В открывшемся окне вводим команду:
Вводим пароль пользователя. Всё. Вы великолепны (2)!
Заключение
Несмотря на высокую защиту протокола, использование стандартного порта значительно повышает риск взлома сервера. Например, это можно сделать при помощи brute-force (атака полным перебором). Порт 22 — открытый, поэтому злоумышленнику нужно только подобрать логин и пароль к серверу. Это сложно, но возможно. Чтобы максимально ограничить доступ к серверу для злоумышленников (настроить брандмауэр, iptables), можно сменить SSH-порты.
Ресурсы, которые использовал
- Как включить SSH в Ubuntu 20.04 (Routerus):https://routerus.com/how-to-enable-ssh-on-ubuntu-20-04/
- Коротко об SSH / Хабр: https://habr.com/ru/sandbox/166705/
- Что такое SSH (блог REG.RU): https://help.reg.ru/support/hosting/dostupy-i-podklyucheniye-panel-upravleniya-ftp-ssh/chto-takoye-ssh