L' user@host:path/to/repo
format indique à Git d'utiliser ssh pour se connecter à host
avec nom d'utilisateur user
. D' git help clone
:
Une alternative scp-syntaxe qui peut également être utilisé avec le protocole ssh:
[user@]host.xz:path/to/repo.git/
La partie avant de l' @
est le nom d'utilisateur, et la méthode d'authentification (mot de passe, clé publique, etc.) est déterminé par ssh, pas de Git. Git a pas de moyen de passer d'un mot de passe ssh, parce que ssh pourrait même ne pas utiliser un mot de passe en fonction de la configuration du serveur distant.
Utiliser ssh-agent
pour éviter de taper les mots de passe de tous les temps
Si vous ne voulez pas taper votre mot de passe ssh tout le temps, la solution habituelle est de générer une paire clé publique/privée, mettre la clé publique de votre ~/.ssh/authorized_keys
le fichier sur le serveur distant, et de les charger votre clé privée en ssh-agent
. Voir aussi la Configuration de Git via SSH, GitHub page d'aide sur clé ssh phrases de passe, gitolite ssh de la documentation, et Heroku de clés ssh de la documentation.
Le choix entre plusieurs comptes sur GitHub (ou Heroku ou...)
Si vous avez plusieurs comptes dans un endroit comme GitHub ou Heroku, vous aurez de multiples clés ssh (au moins une par compte). Pour choisir le compte auquel vous souhaitez vous connecter en tant que, vous avez à dire ssh qui de la clé privée à utiliser.
Par exemple, supposons que vous ayez deux comptes GitHub: foo
et bar
. Votre clé ssh pour l' foo
est ~/.ssh/foo_github_id
et votre clé ssh pour l' bar
est ~/.ssh/bar_github_id
. Vous souhaitez accéder git@github.com:foo/foo.git
votre foo
compte et git@github.com:bar/bar.git
votre bar
compte. Vous devez ajouter les lignes suivantes à votre ~/.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
Vous serait alors cloner les deux dépôts comme suit:
git clone gh-foo:foo/foo.git # logs in with account foo
git clone gh-bar:bar/bar.git # logs in with account bar