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

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.

Konfigurieren Sie Mercurial so dass sie nicht mehr nach ihrem Passwort für die Befehle push und pull über HTTPS gefragt werden.