Я искал хороший помощник для зашифрованных учетных данных git для Linux (что-то, что может хранить пароли в зашифрованном виде и извлекать их позже, в соответствии с протоколом git-credential), и я действительно удивлен, что, похоже, не так много появиться.

Во всех документах по git и связанной документации по git-credential, которые я видел, они даже не упоминают о существовании такой вещи. Он всегда упоминает osxkeychain для Mac, но если вы используете Linux, он просто перенаправляет вас в документ, в котором объясняется, как использовать «кеш» в качестве помощника. В некоторых ссылках упоминается диспетчер учетных данных Microsoft git для использования в Windows. Но ничего для Linux.

Использование кеша кажется полу-нормальным решением, если вы используете настоящие пароли. Не страшно, но далеко не идеально. Но если вы используете токены персонального доступа (которые вам нужно использовать, если вы хотите поддерживать двухфакторную безопасность учетной записи для своего репо), то это недопустимо. Время от времени вводить один из этих случайно сгенерированных PAT, независимо от того, насколько он редко, - действительно плохая идея. Вы не можете реально запомнить их, и хранение их где-нибудь в виде обычного текста является угрозой безопасности. (Кроме того, что, если вы хотите автоматизировать некоторые операции git? Это не сработает.)

Итак - какое здесь решение? Если он существует как для Windows, так и для Mac, я уверен, что для Linux есть хотя бы один хороший вариант, а может быть, много. Я слышал, например, вы можете сделать это с помощью Gnome. Но если у вас нет Gnome, что делать? Я слышал, что менеджер Microsoft для Windows может работать под Linux, но еще не пробовал. Это единственный вариант? Есть ли вариант с открытым исходным кодом?

16
reductionista 14 Ноя 2018 в 20:41

2 ответа

Лучший ответ

Это то, что у нас есть в источниках git: https://github.com/git/ git / tree / master / contrib / credential

Таким образом, вы можете использовать gnome-keyring (не рекомендуется), libsecret или .netrc с шифрованием gpg.

Я полагаю, что libsecret можно использовать с любым дистрибутивом Linux без GNOME.

git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret

См. https://stackoverflow.com/a/40312117/7976758.

Вот как использовать зашифрованный gpg .netrc: https://stackoverflow.com/a/18362082/7976758.

14
phd 14 Ноя 2018 в 19:12

Если вы уже используете менеджер паролей, такой как 1Password или Lastpass, или pass или gopass, вы, вероятно, можете использовать его для управления своими учетными данными git, если вы используете его только в своей локальной системе или той, которой вы доверяете.

Я провел быстрый поиск и нашел несколько помощников git-credential-APPNAME для каждого из вышеперечисленных (gopass должен быть совместим с реализацией pass).

-1
dragon788 2 Ноя 2020 в 03:40