Konfigurieren der Benutzerauthentifizierung für HTTPS
posted by Zachary Voase on October 1, 2009
Wenn Sie HTTPS als Methode für das publizieren und abholen von Änderungen in
ihrem Repository nutzen, werden Sie von Mercurial immer nach ihrem
Benutzernamen und Passwort gefragt. Glücklicherweise können Sie mit einer
einfachen Einstellung in ihrer ~/.hgrc Datei dies beheben.
Hinweis: Dies ist eine neue Funktionalität die mit Mercurial 1.3 eingeführt wurde. Wenn Sie eine ältere Version haben müssen sie erst Mercurial aktualisieren.
Hinweis: Dieser Tipp wird ihren Benutzernamen und Passwort als Klartext in
der Datei ~/.hgrc hinterlegen. Es ist im allgemeinen deutlich sicherer entweder
- SSH und
ssh-agentzu nutzen (siehe diesen Artikel), oder - das Passwort jedes Mal einzugeben.
Wenn Sie nicht 100% davon überzeugt sind, dass nur sie zugriff auf ihre
~/.hgrc Datei haben, sollten Sie hier aufhören.
Der Abschnitt [auth] in ihrer ~/.hgrc Datei beinhaltet die Kombination von
Benutzernamen und Passwort für die Authentifizierung. Jeder solcher Kombination
kann ein beliebiger Name gegeben werden. Für die folgenden Beispiele nehmen wir
an, dass Sie BitBucket für das Hosting ihrer Repositories verwenden. Die
Kombination nennen wir daher bb.
Fügen Sie die folgenden Zeilen in ihre ~/.hgrc
Datei:
[auth]
bb.prefix = https://bitbucket.org
bb.username = {Benutzername}
bb.password = {Passwort}
Ersetzen Sie {Benutzername} und {Passwort} mit den entsprechenden Angaben
ihres Zugangs bei BitBucket.
Sie können auch mehrere Kombinationen von Zugangsdaten mit verschiedenen Präfixen ablegen. Ein Beispiel mit 2 Accounts bei BitBucket:
[auth]
bb1.prefix = https://bitbucket.org/foo/
bb1.username = foo
bb1.password = foo_passwd
bb2.prefix = https://bitbucket.org/bar/
bb2.username = bar
bb2.password = bar_passwd
Wenn Sie nun auf eine URI die mit https://bitbucket.org/foo/ publizieren
wird ihr ‘foo’ Account genommen. Dies funktioniert nach den gleichen Muster
für ihren ‘bar’ Account. In diesem Beispiel können Sie das Verhalten von
Mercurial ausnutzen, dass immer die Kombination wählen wird, die am genausten
dem Muster entspricht. Somit können Sie auch dies angeben:
[auth]
bb1.prefix = https://bitbucket.org/
bb1.username = foo
bb1.password = foo_passwd
bb2.prefix = https://bitbucket.org/bar/
bb2.username = bar
bb2.password = bar_passwd
So wird überall wo Sie nicht explizit /bar/ angeben der ‘foo’ Account
verwendet - da die URL nur auf den Account passt. Die Repositories unterhalb
von /bar/ werden den ‘bar’ Account nehmen, da beide passen wird derjenige
genommen, der spezifischer ist.
Zum Abschluss können Sie Mercurial auch mitteilen, dass die Daten bei beiden
Protokollen HTTP und HTTPS verwendet werden soll. Dazu braucht es einen Eintrag
für schemes im Abschnitt für die Authentifizierung:
[auth]
bb.prefix = bitbucket.org
bb.username = foo
bb.password = foo_passwd
bb.schemes = http https
Für weitere Informationen schauen Sie bitte die Dokumentation von
hgrc auth an.