3

Коллега недавно сказал: «Вы можете войти на сервер, используя флаг -A если вы хотите загрузить свой закрытый ключ». Я кивнул, как будто я знал, что они говорили, и затем скрылся в Google.

Кажется, почти как использование -A волшебным образом позволит вам войти без учетных данных. Страница man:

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

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

Там 6 слов описания, затем параграф эзотерического предупреждения.

Что делает флаг -A , как он работает и как его использовать?

2 ответа2

2

ssh -A заставит deamon на стороне сервера создать сокет аутентификации (на который будет указывать переменная окружения SSH_AUTH_SOCK) и который позволит вам перенаправлять запросы аутентификации на ваш клиентский компьютер (тот, который инициировал соединение).

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

Предупреждение в основном означает, что пользователи, которые могут получить доступ к вашим файлам, минуя обычные проверки файловой системы (обычно это root на простом английском языке), могут манипулировать вашими ключами и получать доступ к системам, к которым вы можете получить доступ.

2

Включает переадресацию соединения с агентом аутентификации.

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

... аутентификация ...

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

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

... агент ...

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

"Агент аутентификации" - это программа, которая запускается на вашем компьютере и загружает все ваши личные ключи один раз. Когда вы хотите подключиться к серверу, ваш SSH-клиент может спросить агента, какие ключи он имеет, и использовать их для аутентификации.

... пересылка ... соединения

Наконец, мы переходим к переадресации агентов. Если вы запускаете агент аутентификации на вашем ПК, вы можете использовать его для входа на сервер A. Но что, если вам затем потребуется подключиться с сервера A к серверу B (например, потому что сервер B недоступен для общего доступа)? Вам нужно будет ввести пароль или сохранить ключ на сервере A, или даже запустить агент аутентификации на сервере A.

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

Так что с переадресацией агента ваша аутентификация выглядит так:

  • Запустите агент аутентификации на вашем ПК
  • Загрузите некоторые секретные ключи в агент
  • Подключитесь к серверу A, используя агент для аутентификации и включив переадресацию агента
  • Соединитесь с сервером B, используя перенаправленное соединение для аутентификации, используя тот же агент
  • Это может продолжаться бесконечно, переадресовывая соединение через все больше и больше прыжков, пока вы не потеряете отслеживание того, где вы находитесь

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

Внимание в руководстве указывает на то, что технически верно для всей аутентификации на основе агента: любой процесс, который может общаться с агентом, может использовать его для подключения ко всему, для чего вы загружаете ключи. На однопользовательской рабочей станции для этого обычно требуется мошенническое программное обеспечение, выполняющее некоторые автоматические атаки. Переадресация агента обычно происходит на многопользовательском сервере, однако это создает дополнительный риск для мошеннических пользователей: если они могут получить доступ к сокету переадресации агента (который в традиции Unix представлен в виде специального файла в файловой системе), они могут использовать это выдавать себя за вас на других серверах.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .