Как подключиться к удаленному Linux-серверу?

«Как подключиться к удаленному Linux-серверу?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основной и стандартный способ удаленного администрирования Linux-серверов — использование протокола SSH (Secure Shell). Он обеспечивает шифрованное сетевое соединение.

Базовое подключение по SSH:

ssh username@server_ip_address
# Пример:
ssh admin@203.0.113.10

После ввода команды вас запросят пароль пользователя admin на удаленном сервере.

Использование SSH-ключей (рекомендуется для безопасности и автоматизации): Аутентификация по ключу надежнее пароля. Вы генерируете пару ключей (приватный и публичный) на своей машине и копируете публичный ключ на сервер.

  1. Генерация ключа (на локальной машине):

    ssh-keygen -t ed25519 -C "your_email@example.com"
    # Или для совместимости: ssh-keygen -t rsa -b 4096

    По умолчанию ключи сохранятся в ~/.ssh/id_ed25519 (приватный) и ~/.ssh/id_ed25519.pub (публичный).

  2. Копирование публичного ключа на сервер:

    ssh-copy-id username@server_ip_address

    Эта команда добавит ваш публичный ключ в файл ~/.ssh/authorized_keys на сервере.

  3. Подключение с использованием ключа: Теперь можно подключиться без ввода пароля:

    ssh username@server_ip_address

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

  • Указание нестандартного порта: Если SSH-демон слушает не на 22 порту.
    ssh -p 2222 username@server_ip_address
  • Указание конкретного приватного ключа: Если ключ нестандартный или их несколько.
    ssh -i ~/.ssh/my_custom_key.pem username@server_ip_address
  • Выполнение команды без входа в интерактивную оболочку:
    ssh username@server_ip_address 'ls -la /tmp'

Для Windows-клиентов:

  • Используйте встроенный OpenSSH-клиент (доступен в Windows 10/11). Работает через PowerShell или CMD.
  • Или используйте PuTTY — популярный GUI-клиент SSH. Для ключей потребуется конвертировать ключи OpenSSH в формат .ppk с помощью puttygen.

Важно для DevOps: SSH — это основа для автоматизации (Ansible, CI/CD пайплайны, скрипты деплоя). Все взаимодействие с серверами в инфраструктуре как коде построено на аутентификации по ключам.