J'ai généré une paire de clés sans mot de passe et ajouté la clé publique à github . Connexion avec
user@dev:/var/www/project# ssh -T [email protected]
Hi User! You've successfully authenticated, but GitHub does not provide Shell access.
a été un succès et lorsque je renomme la clé, il échoue . Mais lorsque je veux pousser mes modifications, il me demande toujours ma combinaison nom d'utilisateur/mot de passe.
Existe-t-il un moyen de pousser sans mot de passe?
S'il vous demande un nom d'utilisateur et un mot de passe, votre télécommande Origin pointe sur l'URL https plutôt que sur l'URL ssh.
Changez-le en ssh.
Par exemple, un projet github comme Git aura une URL https
https://github.com/<Username>/<Project>.git
et le ssh:
[email protected]:<Username>/<Project>.git
Tu peux faire:
git remote set-url Origin [email protected]:<Username>/<Project>.git
pour changer l'URL.
En plus pour les gists, il semble que vous deviez omettre le nom d'utilisateur
git remote set-url Origin [email protected]:<Project code>
Vous devez utiliser la version SSH et non HTTPS. Lorsque vous clonez depuis un référentiel, copiez le lien avec la version SSH, car SSH est facile à utiliser et résout tous access.You peut définir l'accès pour chaque SSH que vous avez entré dans votre compte (comme Push, pull, clone, etc.)
voici un lien qui explique pourquoi nous avons besoin de ssh et comment l'utiliser: étape par étape
Dans le cas où vous utilisez effectivement l'URL SSH, mais que le nom d'utilisateur et le mot de passe sont toujours demandés lorsque git pushing:
git remote set-url Origin [email protected]:<Username>/<Project>.git
Vous devriez essayer de dépanner avec:
ssh -vT [email protected]
Vous trouverez ci-dessous un exemple de sortie:
...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_dsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ecdsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
En fait, j'ai déjà ajouté la clé publique à GitHub auparavant et j'ai également la clé privée localement. Cependant, ma clé privée porte un nom différent appelé /c/Users/Yuci/.ssh/github_rsa
.
Selon l'exemple de sortie, Git essaie /c/Users/Yuci/.ssh/id_rsa
, ce que je n'ai pas. Par conséquent, je pourrais simplement copier github_rsa
dans id_rsa
dans le même répertoire.
cp /c/Users/Yuci/.ssh/github_rsa /c/Users/Yuci/.ssh/id_rsa
Maintenant, quand je lance à nouveau ssh -vT [email protected]
, j'ai:
...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Authentication succeeded (publickey).
...
Hi <my username>! You've successfully authenticated, but GitHub does not provide Shell access.
...
Et maintenant je peux pousser sur GitHub sans me demander le nom d'utilisateur et le mot de passe :-)
Comme d'habitude, créez une clé SSH et collez la clé publique dans Github. ajoutez la clé privée à ssh-agent. (Je suppose que c'est ce que vous avez fait) . Pour vérifier que tout est correct, utilisez ssh -T [email protected]
Next N'oubliez pas de modifier le point distant comme suit git remote set-url Origin [email protected]:username/your-repository.git