1034 votes

Comment faire pour fournir le nom d’utilisateur et mot de passe lorsqu’il est exécuté « git clone git@remote.git » ?

Je sais comment fournir un nom d’utilisateur et mot de passe pour une demande https comme ceci :

Mais je voudrais savoir comment fournir un nom d’utilisateur et mot de passe pour la télécommande comme ceci :

J’ai essayé comme ceci :

Mais ils n’ont pas fonctionné. Merci.

1610voto

Bassetassen Points 2592
<pre><code></code><p>Ça a fonctionné pour moi dans un dépôt github</p></pre>

241voto

Richard Hansen Points 13044

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X