Ich möchte in GitExtension automatisch Push und Pull verwenden , ohne jedes Mal meinen Benutzer und mein Passwort in einer Eingabeaufforderung einzugeben .
Wie kann ich meine Anmeldeinformationen in Git speichern?
git
credentials
git-config
Edson Cezar
quelle
quelle
Antworten:
Lauf
dann
Geben Sie einen Benutzernamen und ein Passwort ein, und diese Details werden später gespeichert. Die Anmeldeinformationen werden in einer Datei auf der Festplatte gespeichert, mit den Festplattenberechtigungen "Nur vom Benutzer lesbar / beschreibbar", aber immer noch im Klartext.
Wenn Sie das Passwort später ändern möchten
Wird fehlschlagen, da das Passwort falsch ist, entfernt git dann den beleidigenden Benutzer + Passwort aus der
~/.git-credentials
Datei, also führen Sie es jetzt erneut ausum ein neues Passwort anzugeben, damit es wie früher funktioniert.
quelle
Mit können Sie die
git config
Speicherung von Anmeldeinformationen in git aktivieren.Wenn Sie diesen Befehl ausführen, werden Sie beim ersten Abrufen oder Drücken aus dem Remote-Repository nach dem Benutzernamen und dem Kennwort gefragt.
Für eine konsequente Kommunikation mit dem Remote-Repository müssen Sie anschließend nicht den Benutzernamen und das Kennwort angeben.
Das Speicherformat ist eine
.git-credentials
Datei, die im Klartext gespeichert ist.Sie können auch andere Helfer für den
git config credential.helper
Speichercache verwenden:Dies dauert optional
timeout parameter
und bestimmt, wie lange die Anmeldeinformationen im Speicher bleiben. Bei Verwendung des Hilfsprogramms berühren die Anmeldeinformationen niemals die Festplatte und werden nach dem angegebenen Zeitlimit gelöscht. Derdefault
Wert ist900 seconds (15 minutes).
WARNUNG : Wenn Sie diese Methode verwenden, werden Ihre Git-Account-Passwörter im
plaintext
Format gespeichertglobal .gitconfig file
, z. B. unter Linux/home/[username]/.gitconfig
Wenn dies für Sie unerwünscht ist, verwenden
ssh key
Sie stattdessen ein für Ihre Konten.quelle
git config credential.helper cache
die Passwörter werden nicht in einer Datei gespeichert, sondern nur im Speicher gespeichert. Siehe: git-scm.com/docs/git-credential-cacheEmpfohlene und sichere Methode: SSH
Erstellen Sie einen SSH-Github-Schlüssel. Gehen Sie zu github.com -> Einstellungen -> SSH- und GPG-Schlüssel -> Neuer SSH-Schlüssel. Speichern Sie nun Ihren privaten Schlüssel auf Ihrem Computer.
Wenn der private Schlüssel dann als id_rsa im Verzeichnis ~ / .ssh / gespeichert wird , fügen wir ihn zur Authentifizierung als solchen hinzu:
Eine sicherere Methode: Caching
Wir können git-credential-store verwenden, um unseren Benutzernamen und unser Passwort für einen bestimmten Zeitraum zwischenzuspeichern. Geben Sie einfach Folgendes in Ihre CLI ein (Terminal oder Eingabeaufforderung):
Sie können die Zeitüberschreitung (in Sekunden) auch wie folgt festlegen:
Eine noch weniger sichere Methode
Git-credential-store kann ebenfalls verwendet werden, speichert jedoch Kennwörter in einer einfachen Textdatei auf Ihrer Festplatte als solche:
Veraltete Antwort - schnell und unsicher
Dies ist eine unsichere Methode zum Speichern Ihres Passworts im Klartext. Wenn jemand die Kontrolle über Ihren Computer erlangt, wird Ihr Passwort angezeigt!
Sie können Ihren Benutzernamen und Ihr Passwort folgendermaßen einstellen:
quelle
Aktivieren Sie den Helfer für Anmeldeinformationen, damit Git Ihr Passwort für einige Zeit im Speicher speichert:
Geben Sie im Terminal Folgendes ein:
Standardmäßig speichert Git Ihr Passwort 15 Minuten lang im Cache.
Geben Sie Folgendes ein, um das Standardzeitlimit für den Kennwortcache zu ändern:
Aus der GitHub-Hilfe
quelle
cache
Teil durchstore
. Der vollständige Befehl lautet also :git config --global credential.helper store
. Beachten Sie, dass dadurch Ihr Passwort in einer Open-Text-Datei gespeichert wird (sozusagen ohne Verschlüsselung).--timeout
Parameter?Sie können die
~/.gitconfig
Datei bearbeiten , um Ihre Anmeldeinformationen zu speichernWelches sollte schon haben
Sie sollten am Ende dieser Datei hinzufügen.
Der Grund, warum ich diese Option empfehle, ist, dass sie global ist und wenn Sie die Option irgendwann entfernen müssen, wissen Sie, wohin Sie gehen und sie ändern müssen.
Verwenden Sie diese Option nur in Ihrem persönlichen Computer.
Dann, wenn Sie ziehen | Klon | Geben Sie Ihr Git-Passwort ein. Im Allgemeinen wird das Passwort
~/.git-credentials
im Format gespeichertWO DOMAIN.XXX GITHUB.COM SEIN KÖNNTE | BITBUCKET.ORG | ANDERE
Siehe Dokumente
Starten Sie Ihr Terminal neu.
quelle
Geben Sie einfach Ihre Anmeldeinformationen wie folgt in die URL ein:
Sie können es so speichern :
... Beispiel, um es zu verwenden :
Nun , das ist Liste der URL - Aliase:
git remote -v
... und dass der Befehl, einen von ihnen zu löschen:
git remote rm myrepo
quelle
[email protected]:Username/myRepo.git
https
, nichtssh
, sodass eine solche Lösung dort nützlich sein kann. Beachten Sie auch, dass Sie ein Oauth-Token verwenden können, das geringfügig sicherer ist als Ihr GitHub-Passwort.Öffnen Sie für die globale Einstellung das Terminal (von einem beliebigen Ort aus) und führen Sie Folgendes aus:
Auf diese Weise verwendet jedes lokale Git-Repo, das Sie auf Ihrem Computer haben, diese Informationen.
Sie können jedes Repo individuell konfigurieren, indem Sie Folgendes tun:
Führen Sie Folgendes aus:
Dies betrifft nur diesen Ordner (da Ihre Konfiguration lokal ist).
quelle
--local
Tag hinzugefügt, aber wieder passiert nichtsSie können git-credential-store verwenden, um Ihre Kennwörter unverschlüsselt auf der Festplatte zu speichern, die nur durch die Berechtigungen des Dateisystems geschützt ist.
Beispiel
Sie können die in der Datei gespeicherten Anmeldeinformationen überprüfen
~/.git-credentials
Weitere Informationen finden Sie unter git-credential-store - Hilfsprogramm zum Speichern von Anmeldeinformationen auf der Festplatte
quelle
Sie sind sicherer, wenn Sie die SSH-Authentifizierung verwenden als die Authentifizierung mit Benutzername / Kennwort.
Wenn Sie einen Mac verwenden, ist die SSH-Clientauthentifizierung in den MacOS-Schlüsselbund integriert. Nachdem Sie einen SSH-Schlüssel erstellt haben, geben Sie Folgendes in Ihr Terminal ein:
Dadurch wird der private SSH-Schlüssel zum MacOS-Schlüsselbund hinzugefügt. Der Git-Client verwendet ssh, wenn er eine Verbindung zum Remote-Server herstellt. Solange Sie Ihren öffentlichen SSH-Schlüssel beim Server registriert haben, ist alles in Ordnung.
quelle
SSH
Zugriff gewähren. Bei Verwendung der HTTP-Authentifizierung hätte nur jemand Zugriff, der die Anmeldeinformationen stiehltGitHub/GitLab
. Auch Token sind so konzipiert, dass sie eine begrenzte Lebensdauer haben.Nachdem ich Dutzende von SO-Posts, Blogs usw. durchgesehen hatte, habe ich jede Methode ausprobiert , und das habe ich mir ausgedacht. Es umfasst alles.
Das Vanilla DevOps Git Anmeldeinformationen & Private Packages Cheatsheet
Dies sind alle Möglichkeiten und Tools, mit denen Sie git sicher authentifizieren können, um ein Repository ohne interaktive Kennwortabfrage zu klonen .
Die Silberkugel
Willst du Just Works ™? Dies ist die magische Silberkugel.
Holen Sie sich Ihr Zugriffstoken (siehe Abschnitt im Cheatsheet, wenn Sie dazu die Github- oder Gitea-Anweisungen benötigen) und legen Sie es in einer Umgebungsvariablen fest (sowohl für lokale Entwickler als auch für die Bereitstellung):
Kopieren Sie für Github diese Zeilen und führen Sie sie wörtlich aus :
Herzlichen Glückwunsch, jetzt werden alle automatisierten Tool-Klon-Git-Repositorys nicht mehr durch eine Kennwortabfrage behindert, egal ob Sie https oder einen der SSH-URL-Stile verwenden.
Verwenden Sie Github nicht?
Für andere Plattformen (Gitea, Github, Bitbucket) ändern Sie einfach die URL. Ändern Sie die Benutzernamen nicht (obwohl willkürlich, werden sie für unterschiedliche Konfigurationseinträge benötigt).
Kompatibilität
Dies funktioniert lokal unter MacOS, Linux, Windows (in Bash), Docker, CircleCI, Heroku, Akkeris usw.
Mehr Info
Siehe den Abschnitt ".gitconfig anstatt" des Cheatsheets.
Sicherheit
Siehe den Abschnitt "Sicherheit" des Cheatsheets.
quelle
git config --global credential."https://somegithost.com".username MyUserName
, was in Ihrem Cheatsheet steht, aber nirgendwo anders in diesem Antwort-Thread. Diese spezielle Lösung beantwortet nicht die Frage des OP, aber sie beantwortet meine, also danke!In diesem Fall benötigen Sie einen git-Anmeldeinformations-Helfer, um git über die folgende Befehlszeile anzuweisen, sich Ihr GitHub-Passwort und Ihren Benutzernamen zu merken:
Wenn Sie Repo mit SSH-Schlüssel verwenden, benötigen Sie zur Authentifizierung einen SSH-Schlüssel.
quelle
Keine der obigen Antworten hat bei mir funktioniert. Ich bekam jedes Mal Folgendes, wenn ich wollte
fetch
oderpull
:Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Für Macs
Ich konnte verhindern, dass ich meine Passphrase fragte, indem ich:
vi ~/.ssh/config
UseKeychain yes
:wq!
Für Windows
Ich konnte es mithilfe der Informationen in diesem Stapelaustausch zum Laufen bringen: https://unix.stackexchange.com/a/12201/348665
quelle
Abgesehen von der Bearbeitung der
~/.gitconfig
Datei können Sie Folgendes tun:oder
Hinweis, immer einfache Anführungszeichen zu verwenden:
oder
Ihr Benutzername und Ihr Passwort verwenden möglicherweise einige Zeichen, die Ihr Passwort beschädigen würden, wenn Sie doppelte Anführungszeichen verwenden.
--local
oder--global
bedeutet, dass Konfigurationsparameter für das Projekt oder für den Betriebssystembenutzer gespeichert werden.quelle
benutz einfach
Wenn Sie den Git-Pull ausführen , werden Sie nach Benutzername und Passwort gefragt. Von nun an werden Sie nicht mehr nach Benutzername und Passwort gefragt, in denen die Details gespeichert werden
quelle
Speichern Sie Benutzername und Passwort in .git-Anmeldeinformationen
.git-credentials
Hier werden Ihr Benutzername und Ihr Kennwort (Zugriffstoken) beim Ausführen gespeichertgit config --global credential.helper store
. Dies wird von anderen Antworten vorgeschlagen. Geben Sie dann Ihren Benutzernamen und Ihr Kennwort oder Ihr Zugriffstoken ein:Um den Benutzernamen und das Passwort (Zugriffstoken) zu speichern:
Dies ist sehr nützlich für Github-Roboter, z. B. um automatisierte Chain-Builds im selben Docker-Repository zu lösen, indem Regeln für verschiedene Zweige festgelegt werden, und diese dann auszulösen, indem Sie in
post_push
Hooker im Docker-Hub darauf drücken .Ein Beispiel hierfür finden Sie hier im Stackoverflow.
quelle
Ein schneller Weg, um Git-Anmeldeinformationen zwischenzuspeichern:
schön und sicher
Zeitüberschreitung ist in Sekunden.
quelle
Nachdem ich den Thread vollständig gelesen und mit den meisten Antworten auf diese Frage experimentiert hatte, fand ich schließlich das Verfahren, das für mich funktioniert. Ich möchte es teilen, falls sich jemand mit einem komplexen Anwendungsfall befassen muss, aber trotzdem nicht den gesamten Thread und die Manpages gitcredentials , gitcredentials-store usw. durchgehen möchte , wie ich es getan habe.
Unten finden Sie die Prozedur Ich schlage vor , WENN Sie (wie ich) mit mehreren Repositorys zu tun haben , von mehreren Anbietern (Gitlab, GitHub, Bitbucket, etc.) verschiedene Benutzername / Passwort - Kombinationen. Wenn Sie stattdessen nur ein einziges Konto zu Arbeit mit hat, dann könnten Sie besser dran , die Verwendung
git config --global credential.helper store
odergit config --global user.name "your username"
usw. Lösungen , die in früheren Antworten erklärten sehr gut gewesen sein.Meine Lösung:
> git config --global --unset credentials.helper
> cd /path/to/my/repo
> git config --unset credential.helper
> git config credential.helper 'store --file ~/.git_repo_credentials'
Hinweis : Dieser Befehl erstellt eine neue Datei mit dem Namen ".git_repo_credentials" in Ihrem Home-Verzeichnis, in der Git Ihre Anmeldeinformationen speichert. Wenn Sie keinen Dateinamen angeben, verwendet Git die Standardeinstellung ".git_credentials". In diesem Fall reicht es aus, einfach den folgenden Befehl auszugeben:
> git config credential.helper store
git config credential.*.username my_user_name
Hinweis : Die Verwendung von "*" ist normalerweise in Ordnung, wenn Ihre Repositorys vom selben Anbieter stammen (z. B. GitLab). Wenn Ihre Repositorys stattdessen von verschiedenen Anbietern gehostet werden, empfehle ich, den Link zum Anbieter für jedes Repository explizit festzulegen, wie im folgenden Beispiel (für GitLab):
git config credential.https://gitlab.com.username my_user_name
Wenn Sie an dieser Stelle einen Befehl
git pull
eingeben, für den Ihre Anmeldeinformationen erforderlich sind (z. B. ), werden Sie nach dem Kennwort gefragt, das "my_user_name" entspricht. Dies ist nur einmal erforderlich, da git die Anmeldeinformationen in ".git_repo_credentials" speichert und bei nachfolgenden Zugriffen automatisch dieselben Daten verwendet.quelle
Aus dem Kommentar von rifrol unter Linux Ubuntu und aus dieser Antwort geht Folgendes in Ubuntu hervor:
Einige andere Distributionen stellen die Binärdatei bereit, sodass Sie sie nicht erstellen müssen.
In OS X wird es normalerweise mit einem Standardmodul von "osxkeychain" "erstellt", sodass Sie es kostenlos erhalten.
quelle
Überprüfen Sie die offizielle Git-Dokumentation:
https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage
quelle