Подключение к удаленной системе

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь использовать команду Linux ssh для удаленного подключения к другим системам Linux и управления ими. SSH (Secure Shell) - это мощный инструмент для системных администраторов и сетевых инженеров, который позволяет выполнять широкий спектр задач удаленно и безопасно.

Результаты

К концу этого практического занятия (лабораторной работы) вы сможете:

  • Использовать команду ssh для безопасного подключения к удаленной системе
  • Выполнять команды на удаленной системе с помощью SSH
  • Понять основы управления удаленной системой

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/SystemInformationandMonitoringGroup -.-> linux/top("Task Displaying") linux/UserandGroupManagementGroup -.-> linux/passwd("Password Changing") linux/UserandGroupManagementGroup -.-> linux/sudo("Privilege Granting") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") linux/RemoteAccessandNetworkingGroup -.-> linux/ssh("Secure Connecting") subgraph Lab Skills linux/echo -.-> lab-34{{"Подключение к удаленной системе"}} linux/ls -.-> lab-34{{"Подключение к удаленной системе"}} linux/cat -.-> lab-34{{"Подключение к удаленной системе"}} linux/top -.-> lab-34{{"Подключение к удаленной системе"}} linux/passwd -.-> lab-34{{"Подключение к удаленной системе"}} linux/sudo -.-> lab-34{{"Подключение к удаленной системе"}} linux/env -.-> lab-34{{"Подключение к удаленной системе"}} linux/ssh -.-> lab-34{{"Подключение к удаленной системе"}} end

Получение пароля пользователя labex

Перед тем как мы сможем использовать SSH, нам нужно знать пароль для пользователя labex. В этой лабораторной среде пароль хранится в виде переменной окружения.

  1. Откройте окно терминала в среде рабочего стола, только в терминале среды рабочего стола будут установлены переменные окружения.
Получение пароля
  1. Чтобы получить пароль, выполните следующую команду:

    printenv | grep PASSWORD

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

    Эта команда отобразит все переменные окружения, содержащие "PASSWORD". Найдите строку, которая говорит LABEX_PASSWORD=.... Символы после знака равенства - это ваш пароль.

  2. Запишите этот пароль, так как вам он понадобится в последующих шагах.

Важно: Не пытайтесь изменить пароль пользователя labex. Лабораторная среда настроена с использованием этого конкретного пароля, и его изменение может привести к сбою этапов проверки лабораторной работы. Всегда используйте пароль, предоставленный переменной окружения LABEX_PASSWORD в рамках этой лабораторной работы.

Подключение к локальной системе с использованием SSH

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

Пример терминала подключения SSH
  1. В терминале используйте следующую команду для подключения к локальной системе с использованием SSH:

    ssh [email protected]

    Здесь 127.0.0.1 - это адрес петли обратной связи (loopback IP address), который относится к локальной машине. Его часто называют "localhost".

  2. Вы можете увидеть сообщение о подлинности хоста. Это сообщение появляется, потому что это первый раз, когда вы подключаетесь к этой "удаленной" системе. В реальной ситуации вы должны проверить отпечаток (fingerprint) перед продолжением. В рамках этой лабораторной работы введите yes и нажмите Enter, чтобы продолжить.

  3. Когда вас попросят ввести пароль, введите пароль, который вы получили на шаге 1. Вы не увидите вводимые символы пароля.

  4. В случае успеха вы увидите новый приглашение (prompt). Это означает, что вы теперь подключены с помощью SSH, даже если все еще находитесь на той же машине.

  5. Чтобы выйти из сеанса SSH, введите exit и нажмите Enter. Это вернет вас в исходный сеанс терминала.

Выполнение простой команды с использованием SSH

Давайте попрактикуемся в выполнении команды на "удаленной" системе с использованием SSH. Это полезно, когда вам нужно быстро выполнить команду без запуска полноценного сеанса SSH.

  1. Используйте следующую команду для вывода списка содержимого домашнего каталога на локальной системе через SSH:

    ssh [email protected] 'ls -l ~'

    Эта команда состоит из следующих частей:

    • ssh: Команда для запуска SSH - подключения
    • [email protected]: Пользователь и IP - адрес, к которому мы подключаемся
    • 'ls -l ~': Команда, которую мы хотим выполнить на удаленной системе, заключенная в кавычки
  2. Введите пароль пользователя labex, когда вас попросят.

  3. Вы должны увидеть вывод команды ls -l ~, показывающий содержимое домашнего каталога. Этот вывод поступает из "удаленной" системы, даже если на самом деле это та же машина.

  4. Обратите внимание, что на этот раз вы не вошли в полноценный сеанс SSH. Команда была выполнена, и вы сразу вернулись в исходный терминал.

Использование SSH с выделением псевдотерминала

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

  1. Выполните следующую команду, чтобы посмотреть время работы системы:

    ssh -t [email protected] 'uptime'

    Опция -t заставляет SSH выделить псевдотерминал. Это может быть необходимо для команд, которые предполагают выполнение в интерактивной среде.

  2. Введите пароль пользователя labex, когда вас попросят.

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

  4. Теперь давайте попробуем интерактивную команду. Выполните следующее:

    ssh -t [email protected] 'top -n 1'

    Это запустит команду top, которая обычно предоставляет интерактивное представление о процессах системы, но здесь мы используем опцию -n 1, чтобы выйти после одной итерации.

  5. Снова введите пароль пользователя labex, когда вас попросят.

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

Создание и доступ к удаленному файлу

Давайте попрактикуемся в создании файла на "удаленной" системе и доступе к нему. Это демонстрирует, как можно манипулировать файлами на удаленной системе с использованием SSH.

  1. Используйте SSH для создания файла с именем remote_test.txt в домашнем каталоге удаленной системы:

    ssh [email protected] 'echo "This is a test file created remotely" > ~/remote_test.txt'

    Эта команда использует SSH для запуска команды echo на удаленной системе, которая затем выводит текст в новый файл.

  2. Теперь давайте посмотрим содержимое только что созданного файла:

    ssh [email protected] 'cat ~/remote_test.txt'

    Команда cat используется для отображения содержимого файла.

  3. Вы должны увидеть сообщение "This is a test file created remotely" в терминале.

  4. Давайте убедимся в наличии файла, выведя его в списке:

    ssh [email protected] 'ls -l ~/remote_test.txt'

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

Итоги

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

Эти навыки являются фундаментальными для системных администраторов и всех, кто нуждается в удаленном управлении Linux - системами. Помните, что хотя мы использовали локальную систему для практики, те же команды и техники можно применять для подключения к и управления реально удаленными системами по сети или через Интернет.

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

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