Push to github sans mot de passe en utilisant ssh-key

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 réussi et quand je renomme la clé, elle échoue. Mais quand je veux pousser mes modifications, il me demande toujours ma combinaison nom d’utilisateur / mot de passe.

Est-il possible de pousser sans mot de passe?

S’il vous demande un nom d’utilisateur et un mot de passe, votre télécommande d’origine 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//.git 

et le ssh:

 [email protected]:/.git 

Tu peux faire:

 git remote set-url origin [email protected]:/.git 

pour changer l’URL.

De plus pour les gists, il semble que vous devez laisser de côté le nom d’utilisateur

 git remote set-url origin [email protected]: 

Vous devez utiliser la version SSH et non HTTPS . Lorsque vous clonez depuis le référentiel, copiez le lien avec la version SSH , car SSH est facile à utiliser et résout tous les problèmes d’access. Vous pouvez définir l’access pour chaque SSH tirer, cloner etc …)

voici un lien qui explique pourquoi nous avons besoin de ssh et comment l’utiliser: pas à pas

Git Génère des clés SSH

Si vous utilisez bien l’URL SSH, mais que vous êtes toujours invité à entrer un nom d’utilisateur et un mot de passe lors de l’envoi de git:

 git remote set-url origin [email protected]:/.git 

Vous devriez essayer de dépanner avec:

 ssh -vT [email protected] 

Vous trouverez ci-dessous un extrait 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). 

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 ssh -vT [email protected] nouveau ssh -vT [email protected] , j’ai:

 ... debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa debug1: Authentication succeeded (publickey). ... Hi ! You've successfully authenticated, but GitHub does not provide shell access. ... 

Et maintenant je peux pousser vers GitHub sans qu’on me demande de nom d’utilisateur et de mot de passe 🙂

En utilisant la ligne de commande:
Entrez ls -al ~/.ssh pour voir si des clés SSH existantes sont présentes
Dans le terminal show: Aucun répertoire n’existe
Ensuite, générez une nouvelle clé SSH
Étape 1.

 ssh-keygen -t rsa -b 4096 -C "[email protected]" 

étape 2.

 Enter a file in which to save the key (/Users/you/.ssh/id_rsa):  

étape 3.

 Enter passphrase (empty for no passphrase): [Type a password] Enter same passphrase again: [Type password again]