Das user@host:path/to/repo
Format weist Git an, sich mit ssh host
mit dem Benutzernamen anzumelden user
. Von git help clone
:
Eine alternative scp-ähnliche Syntax kann auch mit dem ssh-Protokoll verwendet werden:
[user@]host.xz:path/to/repo.git/
Der Teil vor dem @
ist der Benutzername, und die Authentifizierungsmethode (Kennwort, öffentlicher Schlüssel usw.) wird von ssh und nicht von Git bestimmt. Git hat keine Möglichkeit, ein Passwort an ssh zu übergeben, da ssh abhängig von der Konfiguration des Remote-Servers möglicherweise nicht einmal ein Passwort verwendet.
Verwenden Sie ssh-agent
diese Option , um zu vermeiden, dass ständig Kennwörter eingegeben werden
Wenn Sie Ihr SSH-Kennwort nicht ständig eingeben möchten, besteht die typische Lösung darin, ein öffentliches / privates Schlüsselpaar zu generieren , den öffentlichen Schlüssel in Ihrer ~/.ssh/authorized_keys
Datei auf dem Remote-Server abzulegen und Ihren privaten Schlüssel in zu laden ssh-agent
. Siehe auch Konfigurieren von Git über SSH einmal einzuloggen , GitHub Hilfe Seite auf SSH - Schlüssel Paßphrasen , gitolite ssh Dokumentation und Dokumentation Heroku der SSH - Schlüssel .
Auswahl zwischen mehreren Konten bei GitHub (oder Heroku oder ...)
Wenn Sie mehrere Konten an einem Ort wie GitHub oder Heroku haben, haben Sie mehrere SSH-Schlüssel (mindestens einen pro Konto). Um auszuwählen, unter welchem Konto Sie sich anmelden möchten, müssen Sie ssh mitteilen, welcher private Schlüssel verwendet werden soll .
Angenommen, Sie hatten zwei GitHub-Konten: foo
und bar
. Ihr SSH-Schlüssel für foo
ist ~/.ssh/foo_github_id
und Ihr SSH-Schlüssel für bar
ist ~/.ssh/bar_github_id
. Sie möchten git@github.com:foo/foo.git
mit Ihrem foo
Konto und git@github.com:bar/bar.git
mit Ihrem bar
Konto zugreifen . Sie würden Folgendes zu Ihrem hinzufügen ~/.ssh/config
:
Host gh-foo
Hostname github.com
User git
IdentityFile ~/.ssh/foo_github_id
Host gh-bar
Hostname github.com
User git
IdentityFile ~/.ssh/bar_github_id
Sie würden dann die beiden Repositorys wie folgt klonen:
git clone gh-foo:foo/foo.git # logs in with account foo
git clone gh-bar:bar/bar.git # logs in with account bar
Ssh ganz vermeiden
Einige Dienste bieten HTTP-Zugriff als Alternative zu ssh:
GitHub:
https://username:password@github.com/username/repository.git
Herrlich:
https://username:password@gitorious.org/project/repository.git
Heroku: Siehe diesen Support-Artikel .
WARNUNG : Wenn Sie Ihr Passwort zur Klon-URL hinzufügen, speichert Git Ihr Klartext-Passwort in .git/config
. Verwenden Sie einen Helfer für Anmeldeinformationen, um Ihr Kennwort bei Verwendung von HTTP sicher zu speichern. Zum Beispiel:
git config --global credential.helper cache
git config --global credential.https://github.com.username foo
git clone https://github.com/foo/repository.git
Dies führt dazu, dass Git alle 15 Minuten (standardmäßig) nach Ihrem Passwort fragt. Siehe git help credentials
für Details.