Работа в терминале Linux, подключение по SSH

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

Подключение по SSH

  1. Установка SSH-клиента: На большинстве современных систем Linux SSH-клиент уже установлен. Если это не так, его можно установить с помощью пакетного менеджера. Например, для Debian/Ubuntu:

    sudo apt update
    sudo apt install openssh-client
  2. Подключение к удаленному серверу: Команда для подключения к серверу по SSH выглядит следующим образом:

    ssh username@hostname
    • username — это имя пользователя на удаленном сервере.

    • hostname — это адрес сервера (может быть IP-адресом или доменным именем).

    Пример подключения:

    ssh alice@192.168.1.10

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

  3. Переход на другой порт (если сервер использует нестандартный порт, например 2222):

    ssh -p 2222 username@hostname
  4. Использование ключей для аутентификации: Для повышения безопасности рекомендуется использовать пару ключей SSH вместо пароля. Для этого:

    • Сначала создайте ключ:

      ssh-keygen

      По умолчанию ключи сохраняются в ~/.ssh/id_rsa и ~/.ssh/id_rsa.pub.

    • Затем добавьте публичный ключ на удаленный сервер:

      ssh-copy-id username@hostname

Основные команды и операции при работе через SSH

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

  2. Копирование файлов между локальной и удаленной машинами:

    • Для копирования файлов с локальной машины на удаленную используйте scp:

      scp localfile username@hostname:/path/to/remote/directory
    • Для копирования файлов с удаленной машины на локальную:

      scp username@hostname:/path/to/remote/file /path/to/local/directory
  3. Использование rsync для синхронизации файлов: rsync позволяет синхронизировать файлы и директории между локальной и удаленной системами:

    • Локальный в удаленный:

      rsync -avz /local/directory username@hostname:/remote/directory
    • Удаленный в локальный:

      rsync -avz username@hostname:/remote/directory /local/directory
  4. Перенаправление порта через SSH: Вы можете перенаправить порты, чтобы безопасно передавать данные через SSH:

    • Локальное перенаправление порта:

      ssh -L local_port:localhost:remote_port username@hostname
    • Дистанционное перенаправление порта:

      ssh -R remote_port:localhost:local_port username@hostname
  5. Использование SSH в фоновом режиме: Если вам нужно выполнять долгие операции, которые не должны прерываться при закрытии терминала, используйте nohup или screen/tmux:

    • nohup:

      nohup long_running_command &
    • screen/tmux:

      screen
      # или
      tmux

Завершение сеанса SSH

Чтобы завершить сеанс SSH, просто введите команду exit или нажмите Ctrl + D.

Эти команды и методы помогут вам эффективно работать с удаленными серверами через SSH, а также переносить и синхронизировать файлы между системами.

Last updated