Что такое ssh agent exe
Управление ключами SSH с помощью агента
Материал из 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-add сообщает агенту информацию о ключах из файлов identity, id_dsa и id_rsa. При этом программа спрашивает парольную фразу для каждого из ключей (или, если фразы совпадают, всего один раз). Ключ, для которого правильно была введена парольная фраза передается агенту.
Если в качестве аргумента командной строки указан файл, программа сообщает агенту информацию только о том ключе, который находится в файле.
Список известных агенту секретных ключей можно посмотреть той же командой ssh-add с ключом командной строки -l. Команда сообщит и отпечаток для каждого ключа.
Опции командной строки программы ssh-add
какова цель ssh-agent?
Я прочитал официальное определение:
Агент SSH обрабатывает подпись данных аутентификации для вас. При аутентификации на сервере вы должны подписать некоторые данные, используя свой закрытый ключ, чтобы доказать, что вы, в общем-то, вы.
В качестве меры безопасности большинство людей разумно защищают свои закрытые ключи парольной фразой, поэтому любая попытка аутентификации потребует от вас ввода этой парольной фразы. Это может быть нежелательно, поэтому ssh-agent кеширует ключ для вас, и вам нужно ввести пароль только один раз, когда агент захочет его расшифровать (и зачастую даже не так, поскольку ssh-agent может быть интегрирован с pam, что делают многие дистрибутивы).
Агент SSH никогда не передает эти ключи клиентским программам, а просто представляет сокет, по которому клиенты могут отправлять ему данные и по которому он отвечает подписанными данными. Дополнительным преимуществом этого является то, что вы можете использовать свой закрытый ключ даже с программами, которым вы не полностью доверяете.
Еще одно преимущество агента SSH заключается в том, что его можно пересылать через SSH. Поэтому, когда вы пересылаете своего агента по ssh на хост A, вы можете затем перешагнуть ssh с A на другой хост B без необходимости присутствия вашего ключа (даже в зашифрованном виде) на хосте A.
/.ssh/config «s IdentityFile вариант хорош для, с или без агента
/.ssh/config какой ключ использовать для какого удаленного хоста, чтобы он точно знал, какой из них ему нужен.
Преимущество ssh-agent заключается в том, что вам нужно ввести пароль только один раз. Если ваш закрытый ключ RSA не зашифрован парольной фразой, тогда ssh-agent не требуется. Команда ssh будет примером клиента.
Еще одним преимуществом является то, что, согласно man странице, агент никогда не отправляет закрытый ключ по своему каналу запроса; поэтому, если вы переключаетесь между разными окнами, ваши закрытые ключи защищены.
1 Вы можете установить life время удержания клавиш в агенте.
Статья в Википедии, вероятно, имеет лучшее описание:
Проверка на сервере основана на аутентификации запрос-ответ. ssh подключается к серверу с именем пользователя и запросом ключа. Демон ssh получает запрос и отправляет обратно запрос на основе открытого ключа, хранящегося в файле аутентификации. ssh использует закрытый ключ для создания ответа ключа и отправляет его ожидающему sshd на другом конце соединения. Сам секретный ключ не отправляет. Демон ssh проверяет ответ ключа и, если он действителен, предоставляет доступ к системе. ssh-agent упрощает это, создавая сокет, который прослушивает SSH-соединения. Пользователь просто запускает ssh-agent, сообщая ему, как найти свои ключи (если они не находятся в расположении по умолчанию), вводит ключевую фразу для каждого используемого ключа, единовременно,
Опять дословно из статьи в википедии:
. ssh-agent создает сокет и затем проверяет соединения из ssh. Каждый, кто может подключиться к этому сокету, также имеет доступ к ssh-агенту. Права доступа установлены как в обычной системе Linux или Unix. Когда агент запускается, он создает новый каталог в / tmp с ограниченными правами. Гнездо находится в папке.
В моей системе Fedora 14 она запускается довольно рано как часть подсистемы X11. В этом файле /etc/X11/xinit/xinitrc-common :
При включении этого здесь следующие переменные среды устанавливаются как часть родительской оболочки, поэтому они должны быть у всех разветвленных потомков, например:
Например, в GNOME ssh-agent фактически запускается для каждого пользователя в качестве запускаемого приложения:
TL; DR
Суть в том, ssh-agent что когда вам нужны ssh-ключи, вам нужно всего лишь один раз разблокировать их парольной фразой (при условии, что она есть), и с тех пор они доступны в расшифрованном виде в памяти (RAM).
Использование встроенного SSH клиента в Windows 10
В Windows 10 и Windows Server 2019 появился встроенный SSH клиент, который вы можете использовать для подключения к *Nix серверам, ESXi хостам и другим устройствам по защищенному протоколу, вместо Putty, MTPuTTY или других сторонних SSH клиентов. Встроенный SSH клиент Windows основан на порте OpenSSH и предустановлен в ОС, начиная с Windows 10 1809.
Установка клиента OpenSSH в Windows 10
Клиент OpenSSH входит в состав Features on Demand Windows 10 (как и RSAT). Клиент SSH установлен по умолчанию в Windows Server 2019 и Windows 10 1809 и более новых билдах.
Проверьте, что SSH клиент установлен:
В нашем примере клиент OpenSSH установлен (статус: State: Installed).
Если SSH клиент отсутствует (State: Not Present), его можно установить:
]Бинарные файлы OpenSSH находятся в каталоге c:\windows\system32\OpenSSH\.
Как использовать SSH клиенте в Windows 10?
ssh
usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
destination [command]
Для подключения к удаленному серверу по SSH используется команда:
Если SSH сервер запущен на нестандартном порту, отличном от TCP/22, можно указать номер порта:
Например, чтобы подключиться к Linux хосту с IP адресом 192.168.1.202 под root, выполните:
Затем появится запрос пароля указанной учетной записи, укажите пароль root, после чего должна открытся консоль удаленного Linux сервера (в моем примере на удаленном сервере установлен CentOS 8).
Если вы используете SSH аутентификацию по RSA ключам (см. пример с настройкой SSH аутентификации по ключам в Windows), вы можете указать путь к файлу с закрытым ключом в клиенте SSH так:
Также вы можете добавить ваш закрытый ключ в SSH-Agent. Сначала нужно включить службу ssh-agent и настроить ее автозапуск:
set-service ssh-agent StartupType ‘Automatic’
Start-Service ssh-agent
Добавим ваш закрытый ключ в базу ssh-agent:
Теперь вы можете подключиться к серверу по SSH без указания пути к RSA ключу, он будет использоваться автоматически. Пароль для подключения не запрашивается (если только вы не защитили ваш RSA ключ отдельным паролем):
Еще несколько полезных аргументов SSH:
SCP: копирование файлов из/в Windows через SSH
С помощью утилиты scp.exe, которая входит в состав пакета клиента SSH, вы можете скопировать файл с вашего компьютера на SSH сервер:
scp.exe «E:\ISO\CentOS-8.1.1911-x86_64.iso» root@192.168.1.202:/home
Можно рекурсивно скопировать все содержимое каталога:
И наоборот, вы можете скопировать файл с удаленного сервера на ваш компьютер:
scp.exe root@192.168.1.202:/home/CentOS-8.1.1911-x86_64.iso e:\tmp
Итак, теперь вы можете прямо из Windows 10 подключаться к SSH серверам, копировать файлы с помощью scp без установки сторонних приложений и утилит.
filecheck .ru
Большинство антивирусных программ распознает ssh-agent.exe как вирус.
Бесплатный форум с информацией о файлах поможет вам найти информацию, как удалить файл. Если вы знаете что-нибудь об этом файле, пожалуйста, оставьте комментарий для других пользователей.
Вот так, вы сможете исправить ошибки, связанные с ssh-agent.exe
Информация о файле ssh-agent.exe
Процесс OpenSSH Authentication Agent принадлежит программе OpenSSH for Windows от неизвестно.
Описание: ssh-agent.exe не является важным для Windows и часто вызывает проблемы. Файл ssh-agent.exe находится в подпапках «C:\Users\USERNAME». Известны следующие размеры файла для Windows 10/8/7/XP 295,936 байт (33% всех случаев), 69,632 байт, 385,665 байт или 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
Чистый и аккуратный компьютер является ключевым требованием для избежания проблем с ПК. Это означает: проверка на наличие вредоносных программ, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые вам больше не нужны, проверка Автозагрузки (используя msconfig) и активация Автоматического обновления Windows. Всегда помните о создании периодических бэкапов, или как минимум о создании точек восстановления.
Если у вас актуальная проблема, попытайтесь вспомнить последнее, что вы сделали, или последнюю программу, которую вы установили, прежде чем проблема появилась первый раз. Используйте resmon команду, чтобы определить процесс, который вызывает у вас проблему. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.
ssh-agent сканер
Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.
Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.
Reimage бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.
Про SSH Agent
Введение
SSH-agent является частью OpenSSH. В этом посте я объясню, что такое агент, как его использовать и как он работает, чтобы сохранить ваши ключи в безопасности. Я также опишу переадресацию агента и то, как она работает. Я помогу вам снизить риск при использовании переадресации агента и поделюсь альтернативой переадресации агента, которую вы можете использовать при доступе к своим внутренним хостам через bastion’ы.
Что такое SSH-agent
Агент SSH хранит секретные ключи в безопасности из-за того, что он не делает:
Но если агент может только подписывать сообщения, как SSH шифрует и расшифровывает трафик?
При первом изучении открытых и закрытых ключей SSH естественно предположить, что SSH использует эти пары ключей для шифрования и дешифрования трафика. Именно так я и думал. Но это не тот случай. Пара ключей SSH используется только для аутентификации во время первоначального соединения.
Например, вот как проверяется ключ пользователя во время SSH-соединения, с точки зрения сервера:
Протокол агента
Протокол агента настолько прост, что можно было бы написать базовый SSH-agent за день или два. Он имеет только несколько основных операций:
Команда ssh-add — это ваш шлюз к агенту SSH. Он выполняет все эти операции, кроме подписи. Когда вы запускаете ssh-add без каких-либо параметров, он будет сканировать ваш домашний каталог на наличие некоторых стандартных ключей и добавлять их в ваш агент. По умолчанию он ищет:
Что такое переадресация агента
Функция переадресации агента позволяет вашему локальному агенту SSH связаться через существующее SSH-соединение и прозрачно аутентифицироваться на более удаленном сервере. Например, предположим, что вы входите по SSH в инстанс EC2 и хотите клонировать оттуда приватный репозиторий GitHub. Без переадресации агента вам придется хранить копию вашего приватного ключа GitHub на хосте EC2. При переадресации агента SSH-клиент на EC2 может использовать ключи на вашем локальном компьютере для аутентификации на GitHub.
Как работает переадресация агента
Переадресация агента связана с определенным риском
Когда вы переадресовываете доменный сокет ssh-agent Unix на удаленный хост, это создает угрозу безопасности: любой человек с root доступом на удаленном хосте может незаметно получить доступ к вашему локальному SSH-agent’y через сокет. Они могут использовать ваши ключи, чтобы выдавать себя за вас на других машинах в сети.
Вот пример того, как это может выглядеть:
Как снизить свой риск при переадресации агента
Вот несколько способов сделать переадресацию агента более безопасной:
Или используйте альтернативный агент SSH, который запрашивает вас, когда он используется. Sekey использует Touch ID на macOS для хранения ключей в анклаве безопасности MacBook Pro.
Или вообще не используйте переадресацию агента. Если вы пытаетесь получить доступ к внутренним хостам через bastion, ProxyJump — гораздо более безопасная альтернатива для этого варианта использования. (смотреть ниже)
Используйте ProxyJump : более безопасная альтернатива
Вместо того чтобы перенаправлять agent’a по отдельному каналу, ProxyJump перенаправляет стандартный вход и выход вашего локального SSH-клиента через bastion и далее на удаленный хост. Вот как это работает:
Затем я просто запускаю ssh cloud.computer.internal для подключения к внутреннему назначению через bastion — без переадресации агента.
Если ProxyJump не работает…
Узнайте подробности, как получить востребованную профессию с нуля или Level Up по навыкам и зарплате, пройдя онлайн-курсы SkillFactory: