%3F.png)
Я настроил свойАккаунт GitHub для использования U2Fиспользуя Yubikey (все через SSH), но так как я также используюGit bash приглашение, поэтому каждый раз, когда я использую свой терминал, мне предлагается прикоснуться к ключу безопасности.
Я не совсем понимаю связь между учетными данными SSH, ключом и стандартом FIDO U2F, поэтому не знаю, как настроить свою среду, чтобы она не выдавала мне запросы каждый раз при использовании терминала.
Могу ли я настроить его так, чтобы он запрашивал ответ, скажем, один раз в день или один раз за сеанс или что-то в этом роде?
решение1
Прежде всего, U2F — этонекэшируемый по замыслу. Это не просто пароль; это протокол вызова/ответа, в котором токен каждый раз получает другой «вызов» и выдает цифровые подписи безвсегдараскрывая свои секретные ключи ПК (по сути, как смарт-карта). Вот в чем его главная сила.
То же самое относится и к классическим одноразовым паролям Yubikey. Как следует из названия, ониодин раз, и сервер никогда не примет один и тот же пароль более одного раза, а также любой пароль старше уже принятого.
Тем не менее, есть две вещи, которые вы можете сделать:
Сначала выясните, для чего у вас запрашивают учетные данные, потому что это определеннонетSSH. Поддержка U2Fпатчипока не объединены с OpenSSH и никогда не запрашивали никакого интерактивного ввода — они используют только пары ключей SSH, а не пароль+2fa.
ssh [email protected]
Аналогично, если вы на самом деле отправляете данные по HTTPS, а не по SSH, то, насколько мне известно, интеграция U2F в HTTP-аутентификацию все равно отсутствует, поэтому максимум, что вам придется сделать, это ввести 6-значный код.
Если у вас полноразмерный Yubikey, проверьте, мигает ли его индикатор при запросе. Он мигает только при ожидании подтверждения U2F — если он горит постоянно, он отправит классический одноразовый пароль. И если вы можетевидетьYubikey вводит длинный пароль, это не U2F.
Во-вторых, для SSHв общем, вы можете включить функцию кэширования/мультиплексирования соединений OpenSSH. После того, как вы войдете на сервер, OpenSSH будет поддерживать это соединение активным в течение нескольких минут, даже после того, как вы закроете удаленную оболочку (т. е. даже после того, как Git завершит свои передачи).
Для этого поместите в свой файл следующее
~/.ssh/config
:Host * ControlMaster auto ControlPath ~/.ssh/S.%r@%h:%p ControlPersist 5m
(Старые версии OpenSSH не поддерживают ControlPersist, поэтому вы можете оставить два других варианта, но вам придется вручную запустить соединение с помощью .)
ssh -fNM [email protected]