ssh-agent(1)

НАЗВАНИЕ
ssh-agent - агент аутентификации

СИНТАКСИС
ssh-agent -a bind_address [-c | -s] [-t life] [-u] [-d] [command [...]]
ssh-agent [-c | -s] -k

ОПИСАНИЕ
ssh-agent это программа хранящая приватные ключи, используемые для публичной аутентификации (RSA, DSA). Идея ssh-agent состоит в том, что он запускается в начале Х-сессии или при входе в систему, и все другие окна или программы запускаются как клиенты программы ssh-agent. Посредством переменных окружения агент может быть найден и автоматически использован для аутентификации при подключении к другим машинам с использованием ssh(1).

Используемые опции:

-a bind_address
    Прикрепляет агента к доменному подключению unix bind_address. По умолчанию это /tmp/ssh-XXXXXXXX/agent.<ppid>.

-c  Генерирует команды оболочки С на стандартный вывод. Это поведение по умолчанию, если как SHELL используется csh-подобная оболочка.

-s  Генерирует на стандартный вывод команды оболочки Bourne. Это поведение по умолчанию, если как SHELL используется не csh-подобная оболочка.

-k  Уничтожить текущего агента (указывается для переменной окружения SSH_AGENT_PID).

-t life
    Устанавливает максимальный срок действия для добавленного в агента идентификатора. Срок действия может быть указан в секундах или в виде, описанном в sshd(8). Срок действия указанный при помощи ssh-add(1), перепишет данное значение. Без указания этой опции максимальный срок действия идентификации - бесконечность.

-u  Запустить агента в режиме исключительности.

-d  Режим отладки. При указании этой опции ssh-agent не перейдёт в фоновый режим выполнения.

Если команда задана в строке, то она будет выполнена как субпроцесс агента. Если выполнение команды внезапно прервётся, агент тоже завершит свою работу.

При инициализации агент не имеет ни одного приватного ключа. Ключи добавляются при помощи ssh-add(1). Если агент запущен без параметров, то ssh-add(1) добавит файлы $HOME/.ssh/id_rsa, $HOME/.ssh/id_dsa и $HOME/.ssh/identity. Если идентификация содержит ключевую фразу, то ssh-add(1) запросит эту ключевую фразу (используя маленькую программу Х11, будучи запущенным из-под Х11, или из терминала, если запущено без Х). Затем эта идентификация отправляется агенту. Некоторые идентификации могут быть сохранены в агенте; агент может автоматически использовать любую из них. ssh-add -l отображает идентификации, обслуживаемые агентом в данный момент.

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

Имеется два основных пути установки агента: либо вы позволите агенту начать выполнение новой под-команды, в которую экспортируются некоторые переменные окружения, либо вы позволите агенту напечатать необходимые команды оболочки (будет создан синтаксис либо sh(1), либо csh(1)), которые могут быть перенесены в вызывающую оболочку. Позже ssh(1) проверяет наличие этих переменных и использует их для установления связи с агентом.

Агент никогда не передаст приватный ключ через свой канал запроса. Вместо этого, операции, требующие приватный ключ, будут осуществлены агентом и требуемый результат возвращен запрашивающему. Таким образом, приватные ключи не раскрываются клиенту, использующему агента.

Создаются доменные подключения unix, и имена этих подключений сохраняются в переменной окружения SSH_AUTH_SOCK. Подключение делается доступным только для текущего пользователя. Этот метод может быть неправильно использован суперпользователем (root) или другой сессией этого-же пользователя.

Переменная окружения SSH_AGENT_PID хранит идентификатор процесса (ID) агента.

Агент автоматически прекращает работу, когда команда, указанная в командной строке, завершена.

ФАЙЛЫ

$HOME/.ssh/identity
    Содержит RSA-идентификатор аутентификации пользователя для протокола версии 1.

$HOME/.ssh/id_dsa
    Содержит DSA-идентификатор аутентификации пользователя для протокола версии 2.

$HOME/.ssh/id_rsa
    Содержит RSA-идентификатор аутентификации пользователя для протокола версии 2.

/tmp/ssh-XXXXXXXX/agent.<pid>
    ~/.ssh/agent Доменное подключение unix, используемое для поддержания связи с аутентификационным агентом. Это подключение должно быть доступно для чтения только владельцу. При завершении агентом работы подключение будет удалено автоматически.

АВТОРЫ
OpenSSH является производной из оригинальной и свободной версии ssh 1.2.12 от Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt и Dug Song удалили много ошибок, добавили обновленные возможности и создали OpenSSH. Markus Friedl внес вклад в виде поддержки для протокола SSH версий 1.5 и 2.0.

ПЕРЕВОД
Перевёл с английского: Александр Блохин

СМОТРИ ТАКЖЕ
ssh(1), ssh-add(1), ssh-keygen(1), sshd(8)