10 votes

Comment éviter que MacOS ne demande sans cesse la phrase de passe pour la clé ~/.ssh/id_rsa lors d'une opération à distance via ssh ?

Si je me connecte à distance à un Mac via SSH et que je l'utilise ensuite pour accéder à une autre machine (par exemple pour faire un pull git) via SSH, il continuera à me demander la phrase de passe de la clé. ~/.ssh/id_rsa .

Si j'opère localement sur le même Mac en utilisant le même utilisateur (disons admin), il ne me demandera pas la phrase de passe si j'ai ajouté le mot de passe. UseKeychain yes dans le dossier du Mac distant ~/.ssh/config (J'ai également ajouté le même paramètre pour le Mac local).

10voto

Douglas Points 10417

Vous devez utiliser ssh-agent pour gérer votre phrase de passe.

Cela suppose que vous avez déjà généré des clés SSH pour vous connecter à votre/vos hôte(s). Si ce n'est pas le cas, consultez Comment faire un SSH en une ligne pour une introduction sur la façon de le faire.

Ajoutez ensuite votre clé à l'agent

ssh-add

S'il nécessite une phrase de passe, il la demandera. Désormais, chaque fois que vous vous connecterez en SSH à votre Mac distant, il ne vous demandera pas la phrase de passe tant que vous n'aurez pas fermé la session (locale) du terminal. Si vous en démarrez une nouvelle, il ne vous la demandera qu'une fois et la retiendra pour la durée de cette session de terminal.

Pouvez-vous éviter d'avoir à saisir une phrase de passe ? Oui...

  • N'en mettez pas. Il demande parce que vous avez créé un fichier clé avec une phrase secrète.

  • le coder en dur dans un script (pas conseillé)

Pour passer d'un Mac à un autre et enfin à un autre serveur (c'est-à-dire GitHub), vous devrez activer (mettre sur "yes") ForwardAgent dans vos deux ssh_config et sshd_config . Voir cet article pour plus d'informations.

8voto

Martin Allert Points 898

Premièrement, Allan a raison d'entrer "UseKeychain yes" dans votre fichier .ssh/config. Deuxièmement, ma méthode est également pratique d'une autre manière

# Use Apple Keychain for ssh-key passphrases
UseKeychain yes
# automatically load keys into ssh-agent
AddKeysToAgent yes
# Automatically forward ssh-agent to destination
ForwardAgent yes

Si vous savez ajouter la clé à votre ssh-agent en émettant

ssh-add <keyfile>

et entrez votre phrase de passe, vous pouvez commencer. MAIS vous ajoutez également votre phrase de passe à votre trousseau de clés :

ssh-add --help
...
  -K          Store passphrases in your keychain.
          With -d, remove passphrases from your keychain.

Ainsi, avec

ssh-add -K <keyfile>

vous ne chargez pas seulement votre clé mais vous enregistrez aussi la phrase de passe dans votre trousseau. Vous devez émettre le "-K" une seule fois.

Avec cette configuration, vous avez une clé de sauvegarde et la phrase de passe stockées en toute sécurité dans votre trousseau et chaque fois que vous ouvrez un terminal en utilisant ssh, la clé est automatiquement chargée dans votre ssh-agent et la phrase de passe est prise dans votre trousseau.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X