web-dev-qa-db-fra.com

Configurer l'agent SSH pour git

Je ne veux pas entrer mon mot de passe ssh chaque fois que je fais git Push ou git pull vers/depuis un référentiel distant auquel j'accède via ssh (connexion via un nom d'utilisateur et un mot de passe).

ssh-agent
git config --global credential.helper 'cache --timeout=3600'

Ça ne marche pas Je dois toujours entrer mon mot de passe chaque fois que je veux pousser/tirer.

Que dois-je faire d'autre pour que cela fonctionne?

Si j'exécute

ssh-agent bash

et puis essayez de pousser deux fois dans ce même terminal, je dois encore entrer mon mot de passe deux fois.

1
UTF-8

Oh, j'ai mal compris le travail d'un agent SSH. J'utilise un nom d'utilisateur et un mot de passe. Puis-je stocker mon mot de passe uniquement dans RAM? Je ne veux pas que ça traîne dans mon dossier personnel. - UTF-8

Non avec openssh outils standard. L'agent SSH est destiné aux clés, qui sont ajoutées avant l'utilisation (elles peuvent maintenant être ajoutées lors de leur première utilisation, mais l'histoire est différente).

Si vous voulez pouvoir passer des mots de passe, il existe sshpass, qui peut lire un mot de passe à partir de variables d'environnement, mais notez que ce n'est certainement pas recommandé du point de vue de la sécurité. Si vous vous souciez de la sécurité, configurez une authentification par clé publique.

1
Jakuje

ssh-agent doit fournir des variables à votre environnement. Par conséquent, la bonne façon de l'utiliser est:

eval $(ssh-agent)  

vous pouvez ensuite utiliser ssh-add pour ajouter des clés à votre agent. Lire man ssh-agent;man ssh-add.

Par exemple (YMMV):

w3@aardvark:~(0)$ env | grep SSH
SSH_AUTH_SOCK=/run/user/1003/keyring-ozv0oa/ssh
w3@aardvark:~(0)$ eval $(ssh-agent)
Agent pid 26624
w3@aardvark:~(0)$ env | grep SSH
SSH_AGENT_PID=26624
SSH_AUTH_SOCK=/tmp/ssh-FUVLa89gGIpt/agent.26623
w3@aardvark:~(0)$ ssh-add -l
The agent has no identities.
w3@aardvark:~(1)$ ssh-add
Enter passphrase for /home/w3/.ssh/id_rsa: 
Identity added: /home/w3/.ssh/id_rsa (/home/w3/.ssh/id_rsa)
w3@aardvark:~(0)$ env | grep SSH
SSH_AGENT_PID=26624
SSH_AUTH_SOCK=/tmp/ssh-FUVLa89gGIpt/agent.26623
w3@aardvark:~(0)$ ssh-add -l
2048 a7:56:f0:86:ab:d3:ec:56:3c:84:05:9e:61:38:a9:7b /home/w3/.ssh/id_rsa (RSA)
w3@aardvark:~(0)$
1
waltinator