J'essaie d'exécuter automatiquement les commandes suivantes lorsque je me connecte à mon serveur via ssh:
ssh-agent /bin/bash
ssh-add ~/.ssh/id_rsa
Ma clé ssh a un mot de passe et je peux le saisir une fois par login.
J'ai essayé de mettre cela dans mon fichier .bashrc, mais je pense que ssh-agent démarre une nouvelle session bash. Lorsque j'essaie de me connecter après avoir cela dans mon .bashrc, il reste bloqué et je dois taper 'exit' pour voir l'invite 'entrer mot de passe pour déverrouiller la clé'
D'autres suggestions?
Le serveur exécute Ubuntu LTS
git pull
et autres sur le serveur distantRéponses:
Vous pouvez essayer d'ajouter ceci:
Ainsi, le
ssh-agent
ne démarre pas un nouveau shell, il se lance simplement en arrière-plan et crache les commandes du shell pour définir les variables d'environnement appropriées.Comme indiqué dans le commentaire, vous ne souhaitez peut-être pas exécuter l'agent du tout sur l'hôte distant, mais plutôt sur la boîte de dialogue à partir de laquelle vous travaillez et utilisez
transférer les services de votre agent ssh local à l'hôte distant.
Pour des raisons de sécurité, vous ne devez utiliser le transfert d'agent qu'avec des hôtes exécutés par des personnes de confiance, mais cela vaut mieux que d'exécuter un agent complet à distance à tout moment.
la source
ssh-agent /bin/bash
parssh-agent -s
, puis que j'essaie de le fairegit pull
, on me demande toujours le mot de passe composé de la clé privée pour le déverrouiller. Ce n'est pas vraiment ce que je veux, je veux seulement entrer la phrase secrète en faisant ssh-add, et ne pas avoir à la répéter à chaque fois que j'exécute des commandes git. Des idées?Une alternative consiste à utiliser le trousseau de Funtoo . Ensuite, vous pouvez coller ce one-liner dans votre shell bash:
Cela fait la même chose (lance l'agent ssh, etc.), tout en n'exécutant pas de processus ssh-agent pour chaque sous-shell. Au lieu de cela, il recherche les instances "déjà en cours d'exécution" que vous possédez et vous y attache.
la source