2016-06-06 6 views
2

Ich benutze Ubuntu 14.04 virtuelle Maschine auf Macbook Pro mit dem VMware Fusion. Auf mein git-Repository kann man auch von OSX und von Ubuntu (als gemeinsam genutztes Verzeichnis) zugreifen, aber die git-Kommunikation mit BitBucket funktioniert anders - die Befehle git pull und git push fragen nach Passwort in Ubuntu, funktionieren aber ohne Passwort in OSX.Git-Konfiguration zum Ziehen/Drücken MIT Passwort

Konfigurationsdateien:

  • Die /etc/gitconfig Datei in beiden Fällen fehlt
  • Die ~/.gitconfig Dateiinhalt ist in beiden Fällen gleich
  • Die .git/config Datei

physikalisch der gleiche ist Git Version unter Ubuntu ist 1.9.1, und auf OSX - 1.9.5.

Wohin soll ich den Grund für diesen Unterschied herausfinden? Ich würde es sogar vorziehen, ein Passwort in OSX einzugeben, da es sich um einen halbprivaten Computer handelt.

Antwort

2

Wo sollte ich nachsehen, um den Grund für diesen Unterschied herauszufinden?

Es hängt von der URL verwendet (Ausgabe von git remote -v)

  • https: die OSX Sitzung cached the password with the oskeychain helper haben könnte.
    Sie würden ein cache credential helper in Ubuntu benötigen, um das gleiche Ergebnis zu erzielen.

  • ssh: git ist für den SSH-Schlüssel in ~/.ssh suchen, die ordnungsgemäß in der Mac OS X-Sitzung, aber leer in dem Ubuntu-VM eingestellt werden können.
    Sie müssten die gleichen Schlüssel im Ubuntu ~/.ssh Ordner, um zu vermeiden, dass SSH auf eine Benutzername/Passwort-Authentifizierung zurückgreifen.

+0

Mein Remote-Repo ist mit 'https:' konfiguriert, und diese Konfiguration ist in beiden Fällen identisch, da es tatsächlich eine einzige '.git/config'-Datei gibt. Nichtsdestotrotz habe ich beide '.ssh's nur für den Fall synchronisiert. Ich überprüfe den 'oskeychain'-Helfer, aber ich brauche tatsächlich eine Authentifizierung * mit Passwort * - danke! – HEKTO

+0

@HEKTO Wenn die MAc-OSX-Sitzung * nicht * nach einem Passwort fragt, bedeutet dies, dass das Passwort in einer Weise zwischengespeichert wird, auf die die Ubuntu-Sitzung nicht zugreifen kann. – VonC

+0

@HEKTO Wenn Sie tatsächlich eine Authentifizierung mit Passwort benötigen, können Sie diesen Cache löschen: https://help.github.com/articles/updating-credentials-from-the-osx-keychain/ (http://stackoverflow.com)/q/11067818/6309) – VonC

1

Bitte verwenden Sie SSH, um ohne Passwort zu ziehen/drücken.

Siehe: https://confluence.atlassian.com/bitbucket/set-up-ssh-for-git-728138079.html

Wenn Sie HTTPS verwenden, Sie authentifizieren (Benutzername und Passwort angeben) jedes Mal, wenn Sie eine Aktion, die eine Verbindung mit Bitbucket erfordert. Wer will das machen? Diese Seite zeigt Ihnen, wie Sie Secure Shell (SSH) für die Kommunikation mit dem Bitbucket-Server verwenden und vermeiden, dass Sie jedes Mal ein Kennwort manuell eingeben müssen.

Schritt 1: Gen SSH-Schlüssel, von dem Terminal oder Git Bash

ssh-keygen 

Schritt 2: Bestätigen Sie den Standardpfad .ssh/id_rsa ein Passwort eingeben (empfohlen) oder verlassen es ist leer. Merken Sie sich diese Passphrase, da Sie sie benötigen, um den Schlüssel zu entsperren, wann immer Sie ihn benutzen.

Schritt 3: Open ~/.ssh/id_rsa.pub und kopieren & den Inhalt in dem Server einfügen.

Hinweis dass id_rsa.pub Ihr öffentlicher Schlüssel ist und gemeinsam genutzt werden können, während id_rsa Ihren privaten Schlüssel und sollte geheim gehalten werden.

Schritt 4: Re-Check, in Git Bash Typ

ssh -p 29418 [email protected]_SERVER.com 

Ergebnis zu überprüfen. wenn der Erfolg

**** Willkommen bei Gerrit Code Review ****

Hallo, haben Sie erfolgreich über SSH verbunden.

git clone ssh: //[email protected]_SERVER.com: 29418/REPOSITORY_NAME.git

Schritt 5: Remote-Verzeichnis von git ändern. Gib Git Bash ein, um deinen Link zu ersetzen.