Агент 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 — локальная установка не требуется.
Все уроки этого курса
- Перенаправление портов SSH (локальное и удалённое)
- Туннели SSH и прокси SOCKS
- Агент SSH и многоступенчатые подключения
- Безопасная передача файлов с помощью SCP, SFTP и rsync