Список основных SSH-команд для управления виртуальным сервером с пояснением и примерами

Список основных SSH-команд для управления виртуальным сервером с пояснением и примерами

SSH — сетевой протокол, разработанный в 1995 году с целью установления стабильного и безопасного соединения с удаленными серверами. В наши дни технология получила наибольшее распространение при работе с VPS/VDS и выделенными серверами. Благодаря передаче данных по защищенным криптографическими методами каналам достигается беспрецедентно высокий уровень информационной безопасности.

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

SSH-команды: объясняем простыми словами

Для лучшего понимания термина представим отвлеченную ситуацию: вы живете в Москве, а у вашего заказчика из Екатеринбурга «полетел» интернет-магазин, размещенный на локальном сервере. Вариантов дальнейшего развития ситуации может быть несколько:

  • Вы всё бросайте и ближайшим рейсом вылетаете в другой город, чтобы решить проблему на месте.
  • Или же отбрасываете в сторону эмоции, удаленно подключаетесь к серверу по SSH, находите и устраняете ошибки, не покидая удобного кресла в московском бизнес-центре.

Отправка команд и пакетов данных выполняется по защищенному SSH-протоколу.

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

Что можно делать с помощью SSH-команд

Команды по SSH можно использовать для:

  • настройки серверного оборудования;
  • программирования;
  • установки WordPress, Bitrix, OpenCart и других CMS;
  • выявления и устранения ошибок на сайте;
  • запуска и остановки ПО, в том числе зависшего;
  • копирования, вставки и перемещения файлов;
  • настройки параметров безопасности ПК и файлов;
  • перезагрузки сервера;
  • удаления списка файлов, форматирования жесткого диска;
  • дистанционного запуска файлов.

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

Кратко о подключении и работе по SSH

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

Запуск SSH-клиента

Если вы используйте MacOS, Linux или другие Unix-системы, значит, ничего скачивать и устанавливать не нужно — у этих ОС уже есть SSH-клиент (Terminal). Чтобы его запустить, нажмите Ctrl+Alt+T.

Далее для подключения к удаленному серверу введите в командную строку команду:

ssh root@11.44.45.66

Где:

  • root — имя суперпользователя (чаще всего подключаются через этот аккаунту). Если вы используете другое имя пользователя, впишите его вместо рута.
  • 11.44.45.66 — IP-адрес удаленного сервера.

По умолчанию для подключения по SSH-протоколу используется 22-й порт. Порт — это что-то типа номера рейсового автобуса, курсирующего по маршруту. И все вокруг уже знают, что «попасть» на остановку SSH можно на автобусе-порте под номером 22. Но, всё течет, всё меняется, и иногда на маршрут вместо привычного автобуса выходит, например, маршрутка №320.

Так и стандартный 22-й порт можно заменить на другой, что ещё больше обезопасит подключение. Для этого используется команда:

ssh -p номер_порта имя_пользователя@IP_сервера

У ОС Windows собственного SSH-клиента нет, его придется скачивать дополнительно. Одним из самых популярных вариантов является PuTTY с графической оболочкой, рассчитанной на более удобную и простую настройку параметров удаленного соединения.

SSH-соединение

Установление соединения выполняется в соответствии со следующим алгоритмом:

  1. SSH-клиент запрашивает подключение к серверу.
  2. Участники соединения проводят взаимную идентификацию, решают вопросы относительно используемых протоколов шифрования.
  3. Создается защищенный и стабильно функционирующий канал отправки команд.

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

Обмен ключами шифрования

После запуска SSH-клиента:

  1. Удаленный сервер направляет клиенту перечень протоколов шифрования, с которыми он готов работать.
  2. Если клиент также готов работать с этими протоколами, между ним и сервером криптографическими инструментами создается защищенное и надежное соединение. Внести в него изменения или взломать практически невозможно.
  3. Каждая сторона подключения получает специальный ключ, с помощью которого производится шифрование и дешифрование команд.

Если подключение прошло в штатном режиме, при первом сеансе связи сервер попросит подтвердить соединение:

Are you sure you want to continue connecting (yes/no)?

Завершаем операцию и вводим yes. Таким образом, мы выполнили уникальное подключение. В дальнейшем при изменении настроек и/или параметров работы соединения его участники поймут, что что-то идет не так и нужно бить тревогу.

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

ssh-copy-id -i путь_до_ключа root@IP_сервера

Фактически на этом всё. Защищенное соединение по SSH-протоколу установлено. Теперь вы можете без каких-либо проблем управлять удаленным сервером практически из любой точки планеты.

Root-доступ

По умолчанию при использовании SSH root-доступ разрешен, однако такой подход ставит под угрозу безопасность соединения. Поэтому после подключения рекомендуется раскомментировать строчку:

PermitRootLogin no

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

AllowUsers User1, User2, User3

Где User 1, 2, 3 — это пользователи, которым разрешен доступ.

Список SSH-команд и основы работы с командной строкой

Разберем основные команды и базовые навыки для работы по SSH-протоколу.

Командная строка, горячие клавиши и дополнительные символы

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

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

Помимо команд допускается использование дополнительных символов:

  • ; — выполняет функцию разделителя, позволяющего прописывать и активировать сразу несколько команд:
    cd ~/Documents; mkdir Pervaya_papka
  • && — еще один разделитель. От предыдущего его отличает один важный момент — запуск команд, разделенных &&, осуществляется последовательно, при этом новая команда выполняется, только если успешно завершилась предыдущая:
    cd ~/Documents && mkdir Pervaya_papka
  • | — одновременно запускает две разные команды.
  • ~ — символ является сокращенным написанием /home/имя_учетной_записи/.

Также упростить работу с SSH в консоли можно с помощью горячих клавиш:

  •  — открывает выполненную ранее команду;
  • Ctrl+C — останавливает запущенный процесс;
  • Ctrl+D — аналогична Ctrl+C, только интерпритируется как желание выйти из программы;
  • Ctrl+A — отправляет курсор в начало текущей строки;
  • Ctrl+E — отправляет курсор в конец текущей строки;
  • Ctrl+W — удалить слово в текущей строчке;
  • Ctrl+U — удалить всю строчку;
  • Ctrl+Shift+C — копировать;
  • Ctrl+Shift+V — вставить.

Базовые команды

Рассмотрим наиболее часто используемые SSH-команды:

  • sudo — выдаёт права суперпользователя на использование последующей команды, если её нужно выполнить от имени администратора.
  • Is — отображает содержимое вокруг вас, то есть все директории и файлы. При этом не обязательно переходить в интересующую папку, можно указать её путь:
    ls ~/Desktop/adminvps
  • cd — используется для перехода в любую выбранную папку:
    cd ~/Desktop/ctomserver
  • mkdir — позволяет создавать новую папку:
    mkdir ~/Desktop/shared_hosting
  • rm — команда для удаления папок и их содержимого (документов, медиа, фото) без возможности восстановления:
    rm ~/Desktop/trash
  • cp — применяется для создания копии указанного файла в выбранном каталоге:
    cp ~/Documents/adminvps.txt /home/adminvps/Desktop/important
  • mv — команда для перемещения файлов:
    mv ~/Desktop/adminvps.txt ~/Documents
    Также может использоваться для переименования файла:
    mv ~/Desktop/adminvps.txt adminvps-42.txt
  • find — поиск файлов и папок в файловой системе по типу или названию. Например, такая команда будет искать папки с именем adminvps:
    find -type d -name adminvps
  • history — по умолчанию отображает 10 последних использованных инструментов или приложений. Чтобы изменить это количество любое число:
    history 20
  • clear — удаляет из текущей сессии консоли все ранее введенные данные, историю выполненных команд, а также содержимое открытых файлов.

Команды для работы с папками и файлами

  • ls -lia — отобразит перечень содержимого каталого (всех файлов и папок, в том числе скрытых) в алфавитном порядке с указанием текущего размера.
  • pwd — отобразит полный путь до текущей папки.
  • cd / && du -hs * — полезная команда, если нужно быстро очистить забитый до отказа жесткий диск, используется для поиска директории с самым большим количеством файлов.
  • df — показывает объем свободного дискового пространства сервера.
  • cp -r Papka1 Papka 2 — скопирует первую папку вместе со всем содержимым во вторую директорию.
  • du -sh — отобразит, сколько места занимает текущая папка и её подпапки.
  • du -sh* — показывает, сколько весит каждый файл в текущей папке.
  • touch — создаёт файл заданного формата в выбранной директории:
    touch ~/Desktop/adminvps.txt
  • fsck -y — автопроверка с последующим исправлением ошибок файловой системы.

Команды для работы с архивами

  • tar cf Archive.tar adminvps.txt — создать архив в формате .tar, содержащий указанный файл.
  • tar xf Archive.tar — выполнить распаковку архива.
  • tar czf Archive.tar.gz adminvps.txt — создать архив с использованием сжатия Gzip.
  • tar xzf Archive.tar.gz — распаковать такой архив.
  • gzip adminvps.txt— сжать документ.
  • zip -r Archive.zip /home/adminvps/Desktop/Papka/ — добавить в архив содержимое указанной директории.
  • unzip — распакует архив (синтаксис строится по такому же принципу).

Команды для управления процессами

  • ps -e — отображает на экране все активные в настоящий момент процессы.
  • top — выводит запущенные пользователем процессы с информацией о нагрузке каждого на процессор, занимаемой оперативной памяти, времени работы. Чем-то похожа на диспетчер задач в Windows.
  • kill PID — достаточно специфическая команда, позволяющая завершить текущий процесс с заданным PID-кодом (вместо PID вводится число).
  • killall — позволяет завершить процесс, зная только его название. PID-код здесь не нужен.
  • bg — выводит на экран перечень остановленных и фоновых задач.
  • fg — отображает последние задачи.

Команды для работы с системной информацией

  • reboot либо shutdown -r — выполняет перезагрузку сервера.
  • free — выводит информацию об использовании оперативной памяти (сколько занято и сколько свободно);
  • vmstat — отображает информацию о памяти, процессах, степени загрузки процессора и многом другом. Позволяет мониторить состояние и производительность сервера.
  • uptime — функциональная и часто используемая системными администраторами команда, показывающая время беспрерывной работы сервера без перезагрузки.
  • date — сегодняшняя дата.
  • cal — команда выводит на экран календарь на текущий месяц.
  • cat /proc/cpuinfo или meminfo — показывает характеристики процессоре или оперативной памяти соответственно.

Команды для работы с сетевыми настройками

  • ifconfig — отображает текущие сетевые интерфейсы.
  • ifconfig -a — позволяет получить доступ к полному списку интерфейсов, в том числе к тем, которые не активны в настоящий момент.
  • ifconfig eth1 down — отключает интерфейс eth1.
  • ifconfig eth1 up — включает интерфейс eth1.
  • ping adminvps.ru — пинг указанного сайта, проверка соединения в сетях TCP/IP.
  • dig adminvps.ru — отображает информацию о DNS-серверах сайта.
  • wgеt адрес_ссылки — позволяет скачать файл по указанному адресу. Можно указывать сразу несколько URL-адресов.
  • wgеt -c адрес_ссылки — продолжает остановленное скачивание.

Команды для разграничения прав доступа

  • chown  — нужная команда, которая позволяет назначить владельца для папок и любых файлов системе:
    chown adminVPS (имя учетной записи) ~/Desktop/file.jpg
  • chmod — используется для смены прав доступа к папке или файлу. Например, для назначения прав на чтение и перезапись файла:
    chmod 777 ~/Desktop/photo22.png

Подводим итоги

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

Что будем искать? Например,VPS-сервер

Мы в социальных сетях