Sie können Ihre Passphrase so ändern, dass sie leer ist, indem Sie Folgendes tun
jacerate
1
Sie könnten die Notwendigkeit umgehen, eine Passphrase einzugeben, wenn Sie ssh agent ausführen. Wenn Sie zum ersten Mal einen Git-Pull ausführen, geschieht dies interaktiv. Der SSH-Agent merkt sich Ihren privaten Schlüssel und Sie können den Git-Pull ausführen, ohne dazu aufgefordert zu werden.
Tim Finer
Antworten:
160
Dies ist nicht genau das, wonach Sie gefragt haben, sondern nach http (s):
Sie können das Kennwort in die .netrc-Datei einfügen (_netrc unter Windows). Von dort würde es automatisch abgeholt. Es würde mit 600 Berechtigungen in Ihren Home-Ordner verschoben.
Sie können das Repo auch einfach mit klonen https://user:pass@domain/repo aber das wird nicht wirklich empfohlen, da es Ihren Benutzer / Pass an vielen Stellen anzeigen würde ...
Eine neue Option ist die Verwendung des Anmeldeinformations-Helfers . Beachten Sie, dass Anmeldeinformationen in Ihrer lokalen Konfiguration mithilfe des Standard-Hilfsprogramms für Anmeldeinformationen im Klartext gespeichert werden. Der Anmeldeinformations-Helfer mit Wincred kann auch unter Windows verwendet werden.
Verwendungsbeispiele für Helfer für Anmeldeinformationen
git config credential.helper store - speichert die Anmeldeinformationen auf unbestimmte Zeit.
Für den SSH-basierten Zugriff verwenden Sie den SSH-Agenten, der bei Bedarf den SSH-Schlüssel bereitstellt. Dies würde das Generieren von Schlüsseln auf Ihrem Computer, das Speichern des öffentlichen Schlüssels auf dem Remote-Server und das Hinzufügen des privaten Schlüssels zum relevanten Schlüsselspeicher erfordern.
Können Sie den SSH-Teil näher erläutern? Ich konfiguriere eine EC2-Instanz und möchte, dass sie abgerufen wird, ohne mein Kennwort und die automatische AWS-Skalierung anzufordern. Dieses öffentlich-private System scheint eine gute Lösung zu sein.
Pedro Dusso
1
@ PedroDusso klingt wie dieser Thread ist, was Sie suchen
Eis
2
Ich habe die Verwendung des Mechanismus zum Bereitstellen von Schlüsseln beendet, was eine gute Lösung zu sein scheint. Vielen Dank!
Pedro Dusso
129
Ich habe eine Möglichkeit gefunden, Anmeldeinformationen für eine https-Verbindung in der Befehlszeile anzugeben. Sie müssen nur die vollständige URL für git pull angeben und dort die Anmeldeinformationen angeben:
Sie müssen das Repository nicht vorher mit den Anmeldeinformationen klonen lassen. Dies bedeutet, dass Ihre Anmeldeinformationen nicht landen .git/config. (Aber stellen Sie sicher, dass Ihre Shell Sie nicht verrät und die Befehlszeile in einer Verlaufsdatei speichert.)
Passwort sind nicht erforderlich, und dies ist unsicher, um Passwort auf diese Weise zu schreiben
Meteor
Ist dies nicht eines der Dinge, die ich bereits 2012 in der akzeptierten Antwort aufgeführt habe?
Eis
8
@eis: Nicht genau. Der Punkt ist , dass Sie nicht brauchen , um zu klonen das Repository mit der URL , die die Anmeldeinformationen enthalten, können aber nach wie vor ziehen aus der URL mit Anmeldeinformationen. Der Effekt ist, dass die Anmeldeinformationen nicht in der .git / config-Datei landen.
Holgero
5
Wenn Sie das :passwordTeil weglassen , werden Sie nach Eingabe der Eingabetaste zur Eingabe des Kennworts aufgefordert. Auf diese Weise wird Ihr Passwort nicht im Bash-Verlauf gespeichert.
Beantwortet die Frage nicht direkt, aber ich habe diese Frage gefunden, als ich nach einer Möglichkeit gesucht habe, das Kennwort nicht jedes Mal neu einzugeben, wenn ich auf einen Remote-Server ziehe .
Nun, gitermöglicht es Ihnen, Ihre Anmeldeinformationen für eine begrenzte Zeitspanne zwischenzuspeichern. Es ist anpassbar in git configund diese Seite erklärt es sehr gut:
Optimieren Sie das Beispiel- storeBackend des Helfers für Anmeldeinformationen, um die Speicherorte der XDG-Konfigurationsdatei zu berücksichtigen, wenn dies angegeben ist.
Der Arzt sagt jetzt:
Wenn nicht angegeben:
Anmeldeinformationen werden von ~/.git-credentialsund nach $XDG_CONFIG_HOME/git/credentialsund gesucht
Anmeldeinformationen werden geschrieben, ~/.git-credentialswenn sie vorhanden sind oder $XDG_CONFIG_HOME/git/credentialswenn sie vorhanden sind und erstere nicht.
Das folgende cmd funktioniert, wenn wir kein @ in-Passwort haben:
git pull https://username:pass@[email protected]/my/repository
Wenn Sie ein @ in-Passwort haben, ersetzen Sie es durch% 40, wie unten gezeigt:
git pull https://username:pass%[email protected]/my/repository
Antworten:
Dies ist nicht genau das, wonach Sie gefragt haben, sondern nach http (s):
https://user:pass@domain/repo
aber das wird nicht wirklich empfohlen, da es Ihren Benutzer / Pass an vielen Stellen anzeigen würde ...Verwendungsbeispiele für Helfer für Anmeldeinformationen
git config credential.helper store
- speichert die Anmeldeinformationen auf unbestimmte Zeit.git config credential.helper 'cache --timeout=3600'
- 60 Minuten lagernFür den SSH-basierten Zugriff verwenden Sie den SSH-Agenten, der bei Bedarf den SSH-Schlüssel bereitstellt. Dies würde das Generieren von Schlüsseln auf Ihrem Computer, das Speichern des öffentlichen Schlüssels auf dem Remote-Server und das Hinzufügen des privaten Schlüssels zum relevanten Schlüsselspeicher erfordern.
quelle
Ich habe eine Möglichkeit gefunden, Anmeldeinformationen für eine https-Verbindung in der Befehlszeile anzugeben. Sie müssen nur die vollständige URL für git pull angeben und dort die Anmeldeinformationen angeben:
Sie müssen das Repository nicht vorher mit den Anmeldeinformationen klonen lassen. Dies bedeutet, dass Ihre Anmeldeinformationen nicht landen
.git/config
. (Aber stellen Sie sicher, dass Ihre Shell Sie nicht verrät und die Befehlszeile in einer Verlaufsdatei speichert.)quelle
:password
Teil weglassen , werden Sie nach Eingabe der Eingabetaste zur Eingabe des Kennworts aufgefordert. Auf diese Weise wird Ihr Passwort nicht im Bash-Verlauf gespeichert.Beantwortet die Frage nicht direkt, aber ich habe diese Frage gefunden, als ich nach einer Möglichkeit gesucht habe, das Kennwort nicht jedes Mal neu einzugeben, wenn ich auf einen Remote-Server ziehe .
Nun,
git
ermöglicht es Ihnen, Ihre Anmeldeinformationen für eine begrenzte Zeitspanne zwischenzuspeichern. Es ist anpassbar ingit config
und diese Seite erklärt es sehr gut:https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
Führen Sie in einem Terminal Folgendes aus:
So passen Sie das Cache-Zeitlimit an:
Ihre Anmeldeinformationen werden dann für die angeforderte Zeit im Speicher gespeichert.
quelle
Beachten Sie, dass sich die Art und Weise, wie der Git-Anmeldeinformations-Helfer "speichern" die unverschlüsselten Kennwörter speichert, mit Git 2.5+ ändert (Q2 2014).
Siehe Commit 17c7f4d von Junio C Hamano (
gitster
)Der Arzt sagt jetzt:
quelle
Das folgende cmd funktioniert, wenn wir kein @ in-Passwort haben:
git pull https://username:pass@[email protected]/my/repository
Wenn Sie ein @ in-Passwort haben, ersetzen Sie es durch% 40, wie unten gezeigt:git pull https://username:pass%[email protected]/my/repository
quelle