Меню Закрыть

Ssh agent что это

Содержание

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

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

  • С помощью программы ssh-keygen, должна быть сгенерирована пара ключей, публичный ключ ( public key ) и приватный ключ ( private key )
  • Секретный ключ, всегда остается у клиента и никому никогда не показывается.
  • Публичный ключ копируется на удаленный SSH сервер ( говорим опять-же в контексте операционной системы FreeBSD ) и кладется в специальный файл, известный SSH серверу. По-умолчанию, для хранения публичных ключей, используется файл

/.ssh/authorized_keys. Файл для хранения ключей назначается в файле конфигурации SSH сервера, директивой AuthorizedKeysFile

  • Клиент, отправляет SSH серверу свой публичный ключ и запрашивает аутентификацию по данному ключу.
  • Сервер проверяет файл
  • /.ssh/authorized_keys, если такой ключ найден, SSH сервер отправляет клиенту сообщение, зашифрованное найденным публичным ключом пользователя.

  • Клиент должен расшифровать сообщение с помощью своего приватного ключа, если приватный ключ защищен паролем ( а так и должно быть всегда, в целях безопасности ), программа ssh, попросит пользователя ввести пароль, что-бы сначала расшифровать сам ключ.
  • Если сообщение расшифровано, правильность публичного и приватного, ключей, считается подтвержденной и пользователю предоставляется доступ в систему.
  • Весь процесс аутентификации можно посмотреть, с помощью опции -v ( verbose ), программы ssh, очень полезная штука, особенно на стадии настройки серверной и клиентской частей протокола SSH.

    Генерация ключей с помощью программы ssh-keygen.

    Для создания и управления ключами, предназначена программа ssh-keygen, так-же входящая в пакет программного обеспечения OpenSSH. Полный список опций можно как всегда посмотреть командой man ssh-keygen. Здесь приведу лишь несколько из них:

    -t type ssh-keygen, работает с тремя типами ключей. Возможные значения:
    RSA 1 — для протокола SSH версии 1.
    RSA — для протокола SSH версии 2.
    DSA — для протокола SSH версии 2. -b Длина ключа в битах.
    RSA — минимальная длина, 768 бит, длина ключа по-умолчанию, 2048 бит.
    DSA — длина 1024 бита. -i Данная опция используется для импорта ключей из одного формата ( например ключи сгенерированные программой PuTTYgen, для Windows ), в формат OpenSSH. -l Посмотреть отпечаток секретного ключа ( fingerprint ). -p Изменить секретную фразу приватного ключа.

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

    /.ssh/id_rsa.pub — публичный ключ.

    Вот собственно и все, сгенерирована пара ключей RSA, с длиной 4096 бит и сохранены в файлы /root/.ssh/ >/root/.ssh/id_rsa.pub.

    Настройка SSH сервера на аутентификацию по открытому ключу.

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

    PermitRootLogin yes
    Данная директива нужна, если вы планируете работать под учетной записью root.
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    RhostsRSAAuthentication no
    HostbasedAuthentication no
    PermitEmptyPasswords no
    UseLogin no

    Теперь копируем публичный ключ на удаленный SSH сервер:

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

    /.ssh/authorized_keys, так как мы подключаемся пользователем root, то путь

    /.ssh/authorized_keys указывает на директорию /root/.ssh/authorized_keys.

    Ключи сгенерированы и скопированы на SSH сервер, сервер соответствующим образом настроен, пробуем подключится:

    Читайте также:  Управление домофоном с телефона

    Если пароль на ключ введен верно, получаем доступ в удаленную систему.

    Обратите внимание на следующий момент, с приведенным выше вариантом конфигурации SSH сервера, при неудачной аутентификации по ключам, например если неправильно ввести секретную фразу ключей, будет предложена аутентификация по паролю. Что-бы изменить это поведение и например вообще не пускать пользователя root иначе, как по ключам, можно изменить в конфигурационном файле сервера, значение директивы PermitRootLogin с yes на without-password.

    Использование программы ssh-agent

    Как было сказано выше, в целях безопасности, приватный ключ, всегда должен быть защищен секретной фразой ( паролем ), но это вызывает некоторые неудобства, вам придется вводить секретную фразу, каждый раз когда вы подключаетесь к удаленному серверу по ключу, было-бы гораздо проще ввести пароль на ключ один раз и пользоваться им сколько потребуется. На этот случай в пакете OpenSSH, существуют специальные программы ssh-agent и ssh-add, в общем-то вторая является дополнением первой.

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

    Запускать ssh-agent, можно двумя способами, со специальной опцией, говорящей, какой тип оболочки используется, или с помощью команды eval. Принципиальной разницы как его запускать, нет, просто в случае с опцией, вы должны точно знать, какую оболочку вы используете.

    ssh-agent -c Если в качестве оболочки используется С — Shell ssh-agent -s Если в качестве оболочки используется Bourne Shell eval `ssh-agent` В таком варианте запущенный ssh-agent, будет передан команде eval, которая выполнит его в текущей оболочке. Обратите внимание, используются обратные кавычки а не обычные !

    Итак, запускаем ssh-agent:

    При запуске, ssh-agent создает переменные окружения, проверим какие:

    Теперь нужно поместить в него расшифрованные ключи, делается это с помощью программы ssh-add.

    Если запустить ее без аргументов, будут добавлены все ключи, найденные в стандартных местах их обитания, то есть будут просканированы следующие файлы,

    /.ssh/ >/.ssh/id_dsa. Если ключ защищен парольной фразой, программа попросит ввести ее, что-бы расшифровать ключ и загрузить уже готовый к применению.

    Теперь пробуем подключиться к удаленному SSH серверу:

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

    Посмотреть отпечатки загруженных в ssh-agent ключей, можно той-же командой ssh-add с опцией -l, или целиком ключи, опцией -L.

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

    Удаляются ключи из ssh-agent, так-же просто как и добавляются, для этого используется опция -d, без параметров, для удаления стандартных ключей, опция -d файл_ключа, если нужно удалить конкретный ключ, или опция -D, для удаления всех ключей, например:

    Приведу список самых используемых опций программы ssh-add:

    ssh-add Без опций, добавляются стандартные ключи ssh-add имя файла Добавляются конкретный ключ -l Показывает отпечатки всех загруженных в данный момент ключей -L Посмотреть список самих ключей -D Из ssh-agent, будут удалены все ключи -d имя файла Удаляет конкретный ключ -t Установить время жизни ключей, через данный промежуток времени ключи будут выгружены. -x Заблокировать ssh-agent паролем -X Разблокировать ssh-agent

    Что-бы закрыть ssh-agent, можно вызвать его c опцией -k, ну или на крайний случай прибить сигналом, например kill -QUIT PID, но это крайняя мера и при корректном запуске, это не потребуется:

    Как видите произошел обратный процесс, переменные очищены, процесс убит.

    Форвардинг ssh-agent

    Форвардинг агента включается в файле конфигурации клиента SSH, директивой ForwardAgent yes. Как это работает. Вы запускаете ssh-agent на локальной машине, загружаете ключи, подключаетесь к удаленному SSH серверу, сервер создает обратное перенаправление через созданный SSH туннель к вашему ssh-agent и вы можете использовать загруженные в него ключи для последующих соединений.
    Для примера, с локального хоста, Local_host, подключаемся к удаленной машине Remote_host, по каким-то причинам, нам понадобилось что-то посмотреть на еще одном хосте, Next_remote_host, что происходит в таком случае:

    • Клиент ssh c Local_host, подключается к SSH серверу, Remote_host, и запрашивает форвардинг для ssh-agent
    • Сервер SSH, /usr/sbin/sshd, хоста Remote_host, создает сокет в /tmp/ssh-XXXXXXX/agent.##### и устанавливает переменную окружения SSH_AUTH_SOCK, присваивая ей путь к сокету.
    • Когда нам понадобится подключиться к следующему серверу, ( мы сейчас на сервере Remote_host ), SSH клиент хоста Remote_host, обращается по пути, лежащему в переменной SSH_AUTH_SOCK, то есть к сокету.
    • SSH сервер, находящийся на другом конце сокета /tmp/ssh-XXXXXXX/agent.#####, передает данные из ssh, сервера Remote_host, на ssh-agent, запущенный на хосте Local_host. Вся работа с ключами происходит на машине Local_host а не на машинах, на которых вы регистрируетесь в процессе работы.
    • Теперь с хоста Remote_host, вы можете подключиться к хосту Next_remote_host, используя ключи, загруженные в ssh-agent, на хосте Local_host.
    Читайте также:  Андроид тв приставка mxq pro 4k

    Это только на первый взгляд сложно выглядит, вся эта схема работает абсолютно прозрачно для пользователя, от него требуется только соответствующим образом настроить /etc/ssh/ssh_config а дплее все просто. Собственно тут даже показывать нечего в качестве примера.

    Программа PuTTy, клиент SSH под Windows.

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

    • putty.exe — Программа, SSH, Telnet, Rlogin клиент;
    • puttygen.exe — Утилита для генерации и конвертации ключей;
    • pageant.exe — Аналог программы ssh-agent;
    • plink.exe — Клиент SSH, Telnet и Rlogin для командной строки;
    • pscp.exe — Программа командной строки для безопасного копирования SCP/SFTP
    • psftp.exe — Интерактивный SFTP клиент для командной строки;

    Читайте другие интересные статьи

    Понравилась статья, расскажи о ней друзьям, нажми кнопку!

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

    Вот так, вы сможете исправить ошибки, связанные с ssh-agent.exe

    1. Используйте программу Настройщик Windows, чтобы найти причину проблем, в том числе и медленной работы компьютера.
    2. Обновите программу ssh-agent.exe. Обновление можно найти на сайте производителя (ссылка приведена ниже).
    3. В следующих пунктах предоставлено описание работы ssh-agent.exe.

    Информация о файле ssh-agent.exe

    Процесс ssh-agent.exe не имеет информацию о разработчике.

    Описание: ssh-agent.exe не является важным для Windows и часто вызывает проблемы. Ssh-agent.exe находится в подпапках "C:UsersUSERNAME". Известны следующие размеры файла для Windows 10/8/7/XP 295,936 байт (33% всех случаев), 385,665 байт, 69,632 байт или 382,114 байт.
    Нет информации о создателе файла. Приложение не видно пользователям. Это не системный файл Windows. Ssh-agent.exe способен спрятать себя. Поэтому технический рейтинг надежности 72% опасности.

    Если ssh-agent.exe находится в подпапках "C:Program Files", тогда рейтинг надежности 84% опасности. Размер файла 385,698 байт. Нет более детального описания программы. Приложение не видно пользователям. Это не системный процесс Windows. ssh-agent.exe представляется сжатым файлом.

    Важно: Вы должны проверить файл ssh-agent.exe на вашем компьютере, чтобы убедится, что это вредоносный процесс. Мы рекомендуем Security Task Manager для безопасности вашего компьютера.

    Комментарий пользователя

    Лучшие практики для исправления проблем с ssh-agent

    Следующие программы так же полезны для грубокого анализа: Security Task Manager исследует активный процесс ssh-agent на вашем компьютере и явно говорит, что он делает. Malwarebytes’ — популярная антивирусная утилита, которая сообщает вам, если ssh-agent.exe на вашем компьютере отображает назойливую рекламу, замедляя быстродействие компьютера. Этот тип нежелательной рекламы не рассматривается некоторыми антивирусными программами в качестве вируса и таким образом не удаляется при лечении.

    Чистый и аккуратный компьютер является ключевым требованием для избежания проблем с ПК. Это означает: проверка на наличие вредоносных программ, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые вам больше не нужны, проверка Автозагрузки (используя msconfig) и активация Автоматического обновления Windows. Всегда помните о создании периодических бэкапов, или как минимум о создании точек восстановления.

    Читайте также:  Usb vid 0529 pid 0600

    Если у вас актуальная проблема, попытайтесь вспомнить последнее, что вы сделали, или последнюю программу, которую вы установили, прежде чем проблема появилась первый раз. Используйте resmon команду, чтобы определить процесс, который вызывает у вас проблему. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.

    ssh-agent сканер

    Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.

    Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.

    Reimage бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.

    Материал из Xgu.ru

    Данная страница находится в разработке.
    Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

    Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

    Автор: Игорь Чубин
    Короткий URL: ssh-agent

    На этой странице описывается что такое ssh-agent, зачем он нужен и как правильно его использовать.

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

    ssh-agent хранит секретные ключи и, когда нужно, пользуется ими. Программа (например, ssh), когда ей понадобится воспользоваться секретным ключом, не делает этого сама, а обращается к ssh-agent ‘у, который в свою очередь уже сам пользуется известными только ему данными о секретных ключах. Таким образом, секретные ключи не разглашаются никому, даже программам принадлежащим самому пользователю.

    Программу ssh-agent можно использовать двумя разными способами:

    В обоих случаях ssh-agent создает файл-сокет с именем /tmp/ssh-XXXXXXXX/agent.ppid, через который осуществляется взаимодействие с агентом. Всем дочерним процессам агент при помощи переменных окружения SSH_AUTH_SOCK (в которой хранится имя файла-сокета) и SSH_AGENT_PID (в которой хранится идентификатор процесс агента) сообщает информацию о том, как с ним можно связаться.

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

    При указании ключа -c агент использует синтаксис C Shell. По умолчанию (и при явном указании ключа -s) используется синтаксис Bourne Shell. Эти переменные следует установить в текущем командном интерпретаторе, поэтому обычно вызов ssh-agent комбинируется с командой eval.

    Во втором случае агент экспортирует значения переменных в среду окружения и порождает дочерний процесс, выполняя в нем команду. Достигается аналогичный результат, только при этом порождается дополнительный процесс.

    Для того чтобы использовать ssh-agent в системе X Window, нужно добавить строку
    eval `ssh-agent -s`; ssh-add %$ ssh-add options file

    При вызове без параметров ssh-add сообщает агенту информацию о ключах из файлов identity, id_dsa и id_rsa. При этом программа спрашивает парольную фразу для каждого из ключей (или, если фразы совпадают, всего один раз). Ключ, для которого правильно была введена парольная фраза передается агенту.

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

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

    Опции командной строки программы ssh-add

    • -l — Показать список отпечатков известных агенту ключей
    • -L — Показать информацию обо всех открытых ключах, соответствующих секретным ключам, известным ssh-add
    • -d — Удалить ключ у агента
    • -D — Удалить все ключи у агента
    • -x — Заблокировать агента паролем
    • -X — Разблокировать агента

    «>

    Рекомендуем к прочтению

    Добавить комментарий

    Ваш адрес email не будет опубликован.