0Pricing
Linux Server Deployment & SSH Mastery · Урок

Агент SSH и многоступенчатые подключения

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

«Агент SSH и многоступенчатые подключения» — бесплатный урок Linux Server Deployment & SSH Mastery на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Linux Server Deployment & SSH Mastery, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

SSH-агент: удобство прежде всего

Надоело вводить парольную фразу ключа SSH при каждом подключении к серверу? Вам поможет SSH-агент!

  • Это фоновая программа, которая безопасно хранит Ваши закрытые ключи.
  • Вы разблокируете ключи с помощью парольной фразы всего один раз за сеанс.
  • Благодаря этому можно подключаться к нескольким серверам без повторного ввода парольной фразы, повысив удобство и безопасность.

Запуск SSH-агента

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

Запустить агент и настроить оболочку для его использования можно с помощью этой команды:

eval "$(ssh-agent -s)"

Добавление ключей в агент

После запуска агента можно добавить в него закрытые ключи. Для этого используется команда ssh-add:

  • Она запросит парольную фразу Вашего ключа.
  • Ключ останется загруженным, пока агент не остановится или Вы явно не удалите его.

Чтобы посмотреть, какие ключи загружены, используйте ssh-add -l.

ssh-add ~/.ssh/id_rsa
ssh-add -l

Перенаправление агента: концепция

Иногда необходимо подключиться с одного сервера (сервера A) к другому (серверу B) с помощью локального ключа SSH, не сохраняя этот ключ на сервере A.

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

Использование перенаправления агента

Чтобы включить перенаправление агента, просто добавьте флаг -A при подключении к первому серверу (узлу-переходнику).

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

ssh -A user@jump_host
# Now, from jump_host, connect to target_server
ssh user@target_server

Многоступенчатый SSH: доступ к глубоким сетям

Что делать, если целевой сервер недоступен напрямую с Вашего локального компьютера, а подключиться к нему можно только через промежуточный сервер (так называемый «прыжковый узел»)?

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

Многоступенчатое подключение с ProxyJump

Самый простой и рекомендуемый способ настроить многоступенчатый SSH — использовать директиву ProxyJump в Вашем файле ~/.ssh/config.

Это указывает Вашему SSH-клиенту сначала подключиться к JumpHost, а затем уже оттуда установить соединение с TargetServer.

Host TargetServer
  HostName 192.168.1.100
  User myuser
  ProxyJump jump_host_user@jump.example.com

Многоступенчатое подключение с ProxyCommand

Для более старых SSH-клиентов или сложных сценариев ProxyCommand предоставляет больше гибкости. Она выполняет команду для установления соединения с целевым сервером.

Фрагмент ssh -W %h:%p указывает SSH перенаправлять стандартные ввод и вывод на целевой узел и порт.

Host TargetServer
  HostName 192.168.1.100
  User myuser
  ProxyCommand ssh jump_host_user@jump.example.com -W %h:%p

Объединение перенаправления агента и многоступенчатого подключения

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

Просто добавьте ForwardAgent yes в конфигурацию прыжкового узла в файле ~/.ssh/config или используйте ssh -A для подключения к прыжковому узлу. Это позволит Вашему локальному агенту также аутентифицировать Вас на конечном целевом сервере.

Host JumpHost
  HostName jump.example.com
  User jump_user
  ForwardAgent yes

Host TargetServer
  HostName 192.168.1.100
  User target_user
  ProxyJump JumpHost

Быстрая проверка: возможности SSH

Рассмотрите следующие утверждения об агенте SSH и многоступенчатом SSH. Какие из них верны?

Итоги: беспрепятственный и безопасный доступ

В этом уроке Вы освоили два продвинутых приёма работы с SSH:

  • Агент SSH: хранит разблокированные ключи, избавляя от необходимости многократно вводить парольную фразу, что повышает удобство и безопасность.
  • Перенаправление агента: безопасно передаёт возможности Вашего локального агента удалённым серверам, позволяя аутентифицироваться с прыжкового узла с помощью локальных ключей.
  • Многоступенчатый SSH: обеспечивает доступ к глубоко вложенным сетям через промежуточные прыжковые узлы, которые легко настроить с помощью ProxyJump или ProxyCommand.

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

Часто задаваемые вопросы

Урок «Агент SSH и многоступенчатые подключения» бесплатный?

Да — полный текст урока «Агент SSH и многоступенчатые подключения» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Linux Server Deployment & SSH Mastery, подпишись на CoddyKit PRO. Курс Linux Server Deployment & SSH Mastery содержит 4 уроков всего.

Чему я научусь в уроке «Агент SSH и многоступенчатые подключения»?

Используйте агент SSH для удобного управления ключами и настраивайте многоступенчатые SSH-подключения для доступа к глубоко вложенным сетям. Ты практикуешь Linux Server Deployment & SSH Mastery с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Linux Server Deployment & SSH Mastery?

Предыдущий опыт не требуется. Linux Server Deployment & SSH Mastery на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Агент SSH и многоступенчатые подключения»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Linux Server Deployment & SSH Mastery?

Да. Каждый урок Linux Server Deployment & SSH Mastery включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Перенаправление портов SSH (локальное и удалённое)
  2. Туннели SSH и прокси SOCKS
  3. Агент SSH и многоступенчатые подключения
  4. Безопасная передача файлов с помощью SCP, SFTP и rsync
← Назад к Linux Server Deployment & SSH Mastery