it-swarm.com.de

Wie richte ich Benutzernamen und Passwörter für verschiedene Git-Repos ein?

─[$] cat ~/.gitconfig

[user]
    name = Shirish Agarwal
    email = [email protected]
[core]
    editor = leafpad
    excludesfiles = /home/shirish/.gitignore
    gitproxy = \"ssh\" for gitorious.org
[merge]
    tool = meld
[Push]
    default = simple
[color]
    ui = true
    status = auto
    branch = auto

Jetzt möchte ich meine Git-Anmeldeinformationen für Github, Gitlab und Gitorious speichern, damit ich die Anmeldeinformationen nicht jedes Mal im Browser nachschlagen muss. Wie kann das gemacht werden, damit es automatisiert wird?

Ich laufe zsh

20
shirish

Verwenden von SSH

Der übliche Ansatz für die Verarbeitung der Git-Authentifizierung besteht darin, sie an SSH zu delegieren. Normalerweise legen Sie Ihren öffentlichen SSH-Schlüssel im Remote-Repository fest (, z. B. auf GitHub ), und verwenden diesen dann, wann immer Sie ihn benötigen zu authentifizieren. Sie können natürlich einen Schlüsselagenten verwenden, der entweder von Ihrer Desktop-Umgebung oder manuell mit ssh-agent Und ssh-add Verwaltet wird.

Um zu vermeiden, dass Sie den Benutzernamen angeben müssen, können Sie diesen auch in SSH unter ~/.ssh/config Konfigurieren. zum Beispiel habe ich

Host git.opendaylight.org
  User skitt

und dann kann ich mit klonen

git clone ssh://git.opendaylight.org:29418/aaa

(Beachten Sie das Fehlen eines Benutzernamens dort).

Verwenden von gitcredentials

Wenn der SSH-Ansatz nicht anwendbar ist (, z. B. , wenn Sie ein Repository verwenden, auf das über HTTPS zugegriffen wird), hat git seine eigene Methode, mit Anmeldeinformationen umzugehen gitcredentials (und normalerweise git-credential-store ). Sie geben Ihren Benutzernamen mit an

git config credential.${remote}.username yourusername

und der Helfer für Anmeldeinformationen mit

git config credential.helper store

(Geben Sie --global an, wenn Sie dieses Setup überall verwenden möchten.).

Wenn Sie dann zum ersten Mal auf ein Repository zugreifen, fragt git nach Ihrem Passwort und es wird gespeichert (standardmäßig in ~/.git-credentials). Bei späteren Zugriffen auf das Repository wird das gespeicherte Kennwort verwendet, anstatt Sie zu fragen.

21
Stephen Kitt

Für diejenigen, die dies später fanden - ich hatte Schwierigkeiten damit und ließ es schließlich funktionieren

https/credentials.helper/Ubuntu

  1. Global deaktiviert:
    git config --global --unset credentials.helper
  2. Lokal deaktiviert: (In jedem Repo) git config --unset credential.helper
  3. Erstellen Sie eine Anmeldeinformationsdatei für jedes Repo: (in jedem Repo)

    git config credential.helper 'store --file ~/.git_reponame_credentials'
    

Nicht zu sagen, dass es der beste oder der einzige Weg ist - aber es hat nach mehreren frustrierenden Stunden für mich funktioniert.

7
SteveJ