Pouvez-vous en dire un peu plus sur le moment où l'invite de mot de passe s'affiche pour vous? Je le demande parce que j'ai une clé ssh pour un serveur distant, ce qui, je vous assure, n'est pas le même que mon mot de passe de connexion Mac ou quoi que ce soit, et je n'ai pas eu à entrer le mot de passe pour la clé ssh depuis des années . Je peux simplement ouvrir un terminal, tapez "ssh <serveur>", et je suis là. Je pense que j'ai d'abord configuré cette clé sous OSX 10.5. id_dsa, mais je ne pense pas que cela devrait compter.
Michael H.
Ma id_rsaclé a un mot de passe dessus.
sorin
J'ai aussi le problème d'avoir résolu ce problème il y a si longtemps que je ne me souviens pas exactement de ce que j'ai fait. Mais je pense que l’idée est de ne pas courir ssh-add, mais juste de courir sshdirectement. Vous devriez avoir une fenêtre qui apparaîtra comme mot de passe pour la clé et avec une case à cocher pour vous permettre de la stocker dans votre trousseau.
Harald Hanche-Olsen le
1
@Sorin - le mien aussi! Je devais y entrer une fois, il y a longtemps, et le Mac me l'a sauvegardé depuis. J'espère que les conseils de Harald aideront.
Michael H.
Voulez-vous dire le mot de passe du trousseau (c'est-à-dire votre mot de passe de connexion) ou la phrase secrète de la clé? Si c’est le dernier cas, vos mots de passe sont-ils définitivement stockés dans le trousseau? Vous pouvez vérifier cela en ouvrant le trousseau d'accès et en le cherchant dans le trousseau de connexion.
Mathew Hall
Réponses:
689
Sur OSX, le ssh-addclient natif a un argument spécial pour enregistrer la phrase secrète de la clé privée dans le trousseau OSX, ce qui signifie que votre connexion normale le déverrouillera pour l'utiliser avec ssh. Sur OSX Sierra et les versions ultérieures, vous devez également configurer SSH pour qu'il utilise toujours le trousseau (voir l'étape 2 ci-dessous).
Sinon, vous pouvez utiliser une clé sans phrase secrète, mais si vous préférez une sécurité qui est certainement acceptable avec ce flux de travail.
Étape 1 - Stockez la clé dans le trousseau
Il suffit de faire ceci une fois:
ssh-add -K ~/.ssh/[your-private-key]
Entrez votre mot de passe clé et vous ne serez plus invité à le faire.
(Si vous utilisez une version d'OSX antérieure à Sierra, vous avez terminé, l'étape 2 n'est pas requise.)
Étape 2 - Configurez SSH pour toujours utiliser le trousseau
Il semble qu'OSX Sierra ait supprimé le comportement pratique consistant à conserver vos clés entre les connexions, et que la mise à jour vers ssh n'utilise plus le trousseau par défaut. De ce fait, vous serez invité à entrer la phrase secrète d'une clé après la mise à niveau, et à nouveau après chaque redémarrage.
Assurez-vous d'avoir terminé l'étape 1 ci-dessus pour stocker la clé dans le trousseau.
Si ce n'est déjà fait, créez un ~/.ssh/configfichier. En d' autres termes, dans le .sshrépertoire dans votre répertoire personnel , créez un fichier appelé config.
Dans ce .ssh/configfichier, ajoutez les lignes suivantes:
Passez ~/.ssh/id_rsaau nom de fichier réel de votre clé privée. Si vous avez d'autres clés privées dans votre ~.sshrépertoire, ajoutez également une IdentityFileligne pour chacune d'entre elles. Par exemple, j'ai une ligne supplémentaire qui lit IdentityFile ~/.ssh/id_ed25519une 2e clé privée.
La UseKeychain yesest la partie clé, qui indique à SSH de rechercher dans votre trousseau OSX la phrase secrète de la clé.
C'est ça! Lors du prochain chargement d'une connexion ssh, il essaiera les clés privées que vous avez spécifiées et recherchera leur phrase secrète dans le trousseau OSX. Aucun mot de passe composé requis.
Cela a presque fonctionné pour moi. Le verrouillage automatique de mon trousseau "login" étant déjà désactivé, la réponse de Matthew Sanabria n'a pas été appliquée. L'utilisation de l' ssh-add -K ...ajout des clés à l'agent ssh sans demander de mot de passe, mais uniquement pour la session en cours. Après un redémarrage, je devais réémettre la commande.
Poulsbo
4
@Poulsbo & @Abram - voir ma mise à jour, Sierra a changé le comportement automatique et vous devez maintenant exécuter ssh-add -Amanuellement pour charger votre trousseau enregistré. Quelques solutions possibles référencées ci-dessus.
@sorin voir la réponse mise à jour, et laissez-moi savoir si vous avez des commentaires. Merci!
Trisweb
9
Fonctionne très bien! Dans mon cas, je devais utiliser le Adrapeau en plus de Kcelui pour ajouter mes clés au trousseau et enregistrer la phrase secrète dans celui-ci ( ssh-add -AK ~/.ssh/[your-private-key]). Merci!
Youssman
22
J'ai eu un problème similaire, dans le sens où on me demandait CHAQUE FOIS mon mot de passe composé clé-pub.
Par suggestion de l'utilisateur "trisweb" ci-dessus, j'ai activé ces options pour ~ / .ssh / config:
MAIS il m'a toujours demandé chaque fois que je voulais utiliser ssh.
Finalement, j'ai activé "ssh -v" et trouvé cette ligne de débogage:
debug1: key_load_private: phrase secrète incorrecte fournie pour déchiffrer la clé privée
J'ai ensuite ouvert mon trousseau dans "Keychain Access.app", trouvé la clé nommée "SSH: /Users/username/.ssh/id_rsa" et je l'ai ouverte.
J'ai cliqué sur "Afficher le mot de passe" pour divulguer le mot de passe et j'ai en effet constaté que la phrase secrète du trousseau de clés était une ancienne phrase secrète.
J'ai mis à jour la phrase secrète dans Keychain Access, et fonctionne maintenant sans mot de passe.
J'aurais aussi pu mettre à jour le mot de passe avec cette phrase:
Vous êtes invité à entrer le mot de passe à chaque fois parce que votre trousseau de "connexion" est verrouillé après une inactivité et / ou une mise en veille ou, dans votre cas, un redémarrage. Il y a deux façons de résoudre ce problème pour vous.
Modifiez les paramètres de votre trousseau de "connexion". En supposant que votre clé ssh soit stockée dans le trousseau "login".
Accès au trousseau ouvert
Mettez en surbrillance le trousseau "login"
Faites un clic droit ou une option sur le trousseau "login"
Décochez les cases "Verrouiller après X minutes d'inactivité" et "Verrouiller pendant le sommeil".
Générez une autre clé SSH sans utiliser de phrase secrète.
Notez que lorsque vous appelez ssh-adddepuis SSH, vous security unlock-keychaindevez être appelé en premier. De plus, je n'ai pas eu à créer les répertoires pour le -fparamètre. Malheureusement, je devais quand même appeler des security unlocl-keychainsessions SSH pour accéder au trousseau de connexion, qui demande un mot de passe à chaque fois ...
Ohad Schneider
2
L’essentiel est d’avoir un mot de passe sur la clé. Je doute que générer une nouvelle clé SSH soit utile à la question.
Gris
7
De plus, dans macOS Sierra et HighSierra (je ne connais pas les versions précédentes), l'exécution ssh-add -Apermettra à l'agent de charger toutes les clés dont les phrases secrètes sont stockées sur le trousseau ... Donc, très pratique
Pour tout ce qui précède où ne fonctionne pas, mon problème semble avoir été parce que je dupliquant les UseKeychain yes& AddKeysToAgent yesdans tous les profils / ssh raccourcis clavier. J'ai mis à jour mon ~/.ssh/configfichier pour ne les déclarer qu'une seule fois et ils se chargent tous à la connexion sans demander de mot de passe au démarrage, par exemple:
Host *
UseKeychain yes
AddKeysToAgent yes
IdentityFile ~/.ssh/foo
IdentityFile ~/.ssh/bar
Host foo
HostName foo.com
User fooUser
IdentityFile ~/.ssh/foo
Host bar
HostName bar.com
User barUser
IdentityFile ~/.ssh/bar
id_rsa
clé a un mot de passe dessus.ssh-add
, mais juste de courirssh
directement. Vous devriez avoir une fenêtre qui apparaîtra comme mot de passe pour la clé et avec une case à cocher pour vous permettre de la stocker dans votre trousseau.Réponses:
Sur OSX, le
ssh-add
client natif a un argument spécial pour enregistrer la phrase secrète de la clé privée dans le trousseau OSX, ce qui signifie que votre connexion normale le déverrouillera pour l'utiliser avec ssh. Sur OSX Sierra et les versions ultérieures, vous devez également configurer SSH pour qu'il utilise toujours le trousseau (voir l'étape 2 ci-dessous).Sinon, vous pouvez utiliser une clé sans phrase secrète, mais si vous préférez une sécurité qui est certainement acceptable avec ce flux de travail.
Étape 1 - Stockez la clé dans le trousseau
Il suffit de faire ceci une fois:
Entrez votre mot de passe clé et vous ne serez plus invité à le faire.
(Si vous utilisez une version d'OSX antérieure à Sierra, vous avez terminé, l'étape 2 n'est pas requise.)
Étape 2 - Configurez SSH pour toujours utiliser le trousseau
Il semble qu'OSX Sierra ait supprimé le comportement pratique consistant à conserver vos clés entre les connexions, et que la mise à jour vers ssh n'utilise plus le trousseau par défaut. De ce fait, vous serez invité à entrer la phrase secrète d'une clé après la mise à niveau, et à nouveau après chaque redémarrage.
La solution est assez simple et est décrite dans ce commentaire du fil de discussion github . Voici comment vous le configurez:
Assurez-vous d'avoir terminé l'étape 1 ci-dessus pour stocker la clé dans le trousseau.
Si ce n'est déjà fait, créez un
~/.ssh/config
fichier. En d' autres termes, dans le.ssh
répertoire dans votre répertoire personnel , créez un fichier appeléconfig
.Dans ce
.ssh/config
fichier, ajoutez les lignes suivantes:Passez
~/.ssh/id_rsa
au nom de fichier réel de votre clé privée. Si vous avez d'autres clés privées dans votre~.ssh
répertoire, ajoutez également uneIdentityFile
ligne pour chacune d'entre elles. Par exemple, j'ai une ligne supplémentaire qui litIdentityFile ~/.ssh/id_ed25519
une 2e clé privée.La
UseKeychain yes
est la partie clé, qui indique à SSH de rechercher dans votre trousseau OSX la phrase secrète de la clé.C'est ça! Lors du prochain chargement d'une connexion ssh, il essaiera les clés privées que vous avez spécifiées et recherchera leur phrase secrète dans le trousseau OSX. Aucun mot de passe composé requis.
la source
ssh-add -K ...
ajout des clés à l'agent ssh sans demander de mot de passe, mais uniquement pour la session en cours. Après un redémarrage, je devais réémettre la commande.ssh-add -A
manuellement pour charger votre trousseau enregistré. Quelques solutions possibles référencées ci-dessus..ssh/config
fichier semble prometteuse! Voir github.com/lionheart/openradar-mirror/issues/…A
drapeau en plus deK
celui pour ajouter mes clés au trousseau et enregistrer la phrase secrète dans celui-ci (ssh-add -AK ~/.ssh/[your-private-key]
). Merci!J'ai eu un problème similaire, dans le sens où on me demandait CHAQUE FOIS mon mot de passe composé clé-pub.
Par suggestion de l'utilisateur "trisweb" ci-dessus, j'ai activé ces options pour ~ / .ssh / config:
MAIS il m'a toujours demandé chaque fois que je voulais utiliser ssh.
Finalement, j'ai activé "ssh -v" et trouvé cette ligne de débogage:
J'ai ensuite ouvert mon trousseau dans "Keychain Access.app", trouvé la clé nommée "SSH: /Users/username/.ssh/id_rsa" et je l'ai ouverte.
J'ai cliqué sur "Afficher le mot de passe" pour divulguer le mot de passe et j'ai en effet constaté que la phrase secrète du trousseau de clés était une ancienne phrase secrète.
J'ai mis à jour la phrase secrète dans Keychain Access, et fonctionne maintenant sans mot de passe.
J'aurais aussi pu mettre à jour le mot de passe avec cette phrase:
la source
Vous êtes invité à entrer le mot de passe à chaque fois parce que votre trousseau de "connexion" est verrouillé après une inactivité et / ou une mise en veille ou, dans votre cas, un redémarrage. Il y a deux façons de résoudre ce problème pour vous.
Modifiez les paramètres de votre trousseau de "connexion". En supposant que votre clé ssh soit stockée dans le trousseau "login".
Générez une autre clé SSH sans utiliser de phrase secrète.
ssh-keygen -t rsa -b 4096 -C <comment> -f <.ssh/id_rsa>
ssh-add -K <path to ssh key>
Vous ne devriez plus être invité à entrer un mot de passe de trousseau.
la source
ssh-add
depuis SSH, voussecurity unlock-keychain
devez être appelé en premier. De plus, je n'ai pas eu à créer les répertoires pour le-f
paramètre. Malheureusement, je devais quand même appeler dessecurity unlocl-keychain
sessions SSH pour accéder au trousseau de connexion, qui demande un mot de passe à chaque fois ...De plus, dans macOS Sierra et HighSierra (je ne connais pas les versions précédentes), l'exécution
ssh-add -A
permettra à l'agent de charger toutes les clés dont les phrases secrètes sont stockées sur le trousseau ... Donc, très pratiquela source
Pour tout ce qui précède où ne fonctionne pas, mon problème semble avoir été parce que je dupliquant les
UseKeychain yes
&AddKeysToAgent yes
dans tous les profils / ssh raccourcis clavier. J'ai mis à jour mon~/.ssh/config
fichier pour ne les déclarer qu'une seule fois et ils se chargent tous à la connexion sans demander de mot de passe au démarrage, par exemple:la source
Ajouter la clé publique dans:
Les clés publiques sont généralement sur:
J'espère que ça t'as aidé
la source
authorized_keys