Il semble que ssh-add -K ~/.ssh/id_rsa
chargera votre clé mais vous demandera le mot de passe à chaque redémarrage.
Je recherche une solution qui ne mobligerait pas à saisir à nouveau le mot de passe clé entre les connexions.
Commentaires
Réponse
Sous OSX , le client ssh-add
natif a un argument spécial pour enregistrer la phrase de passe de la clé privée dans le trousseau OSX, ce qui signifie que votre connexion normale le déverrouillera pour une utilisation avec ssh. Sous OSX Sierra et plus tard, vous devez également configurer SSH pour toujours utiliser le trousseau (voir létape 2 ci-dessous).
Vous pouvez également utiliser une clé sans phrase de passe, mais si vous préférez la sécurité qui est certainement acceptable avec ce workflow.
Étape 1 – Stockez la clé dans le trousseau
Faites 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 antérieure à Sierra dOSX, vous avez terminé, létape 2 nest pas requise.)
Étape 2 – Configurez SSH pour toujours utiliser le trousseau
Il semble quOSX Sierra ait supprimé le comportement pratique consistant à conserver vos clés entre les connexions, et la mise à jour vers ssh nutilise plus le trousseau par défaut. Pour cette raison, vous serez invité à entrer la phrase de passe dune 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 de fil de discussion github . Voici comment vous le configurez:
-
Assurez-vous davoir terminé létape 1 ci-dessus pour stocker la clé dans le trousseau.
-
Si vous « t déjà », créez un fichier
~/.ssh/config
. En dautres termes, dans le répertoire.ssh
de votre répertoire personnel, créez un fichier appeléconfig
. -
Dans ce fichier
.ssh/config
, ajoutez les lignes suivantes :Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Remplacez
~/.ssh/id_rsa
par le nom de fichier réel de votre clé privée. Si vous avez dautres clés privées dans votre~/.ssh
, ajoutez également une ligneIdentityFile
pour chacun deux. Par exemple, jai une ligne supplémentaire qui litIdentityFile ~/.ssh/id_ed25519
pour une deuxième clé privée.Le
UseKeychain yes
est la partie clé, qui indique à SSH de rechercher la clé dans votre trousseau OSX mot de passe. -
Cest tout! La prochaine fois que vous chargerez une connexion ssh, il essaiera les clés privées que vous avez spécifiées, et il recherchera leur phrase de passe dans le trousseau OSX. Aucune saisie de phrase de passe requise.
Commentaires
- @Poulsbo & @Abram – voir ma mise à jour, Sierra a changé le comportement automatique et maintenant vous devez exécuter
ssh-add -A
manuellement pour charger votre trousseau enregistré. Quelques solutions possibles référencées ci-dessus. - @trisweb Merci pour le conseil. joshbuchea ' s de modifier le fichier
.ssh/config
semble prometteuse! Voir github.com/lionheart/openradar-mirror/issues/… - Fonctionne très bien!Dans mon cas, je devais utiliser lindicateur
A
en plus de lindicateurK
pour ajouter mes clés au trousseau et enregistrer la phrase de passe dans il (ssh-add -AK ~/.ssh/[your-private-key]
). Merci! - Même avec loption usekeychain, je trouve toujours que mon trousseau laissera tomber la clé .ssh / id_rsa au redémarrage.
- Jai fait exactement la même chose et mon Mac laisse toujours tomber le clé au redémarrage.
Réponse
Jai eu un problème similaire, en ce sens quon me demandait à chaque fois pour ma phrase de passe de clé de pub. Par suggestion de lutilisateur « trisweb » ci-dessus, jai activé ces options sur ~/.ssh/config
:
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Mais cela me demandait toujours à chaque fois que je voulais utiliser ssh. Finalement, jai activé ssh -v
et jai trouvé cette ligne de débogage:
debug1: key_load_private: incorrect passphrase supplied to decrypt private key
Jai ensuite ouvert mon trousseau dans « Keychain Access .app « , a trouvé la clé nommée » SSH: /Users/username/.ssh/id_rsa « et la ouverte. Jai cliqué sur « Afficher le mot de passe » pour divulguer le mot de passe et jai en effet constaté que la phrase de passe du trousseau de clés était une ancienne phrase de passe. Jai mis à jour la phrase de passe dans Keychain Access, et maintenant fonctionne sans mot de passe.
Jaurais pu également mettre à jour la phrase de passe avec cette phrase:
ssh-keygen -p -f ~/.ssh/id_rsa
Commentaires
- Dans mon Mac, le mot de passe est enregistré dans la catégorie «mot de passe» de la chaîne «iCloud». Je pensais que cétait dans la chaîne « connexion ».
Réponse
À tous les cas où ce qui précède na pas fonctionné , mon problème semble être dû au fait que je dupliquais le UseKeychain yes
& AddKeysToAgent yes
dans tout Profils / raccourcis clés ssh. Jai mis à jour mon fichier ~/.ssh/config
pour ne les déclarer quune 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
Commentaires
- Je recommanderais
Host *
dêtre après des règles dhôte spécifiques. Voirman ssh_config
pour plus de détails.
Réponse
Aussi, dans macOS Sierra et HighSierra (je ne connais pas les versions précédentes), lexécution de ssh-add -A
permettra à lagent de charger toutes les clés dont les phrases de passe sont stockées sur le trousseau … donc très pratique
Réponse
Ajoutez la clé publique dans:
.ssh/known_hosts
Public la clé est généralement activée:
/home/user/.ssh/id_rsa.pub
Jespère que cela aide
Commentaires
- Je pense que ça veut dire que
authorized_keys
- Quoi quil en soit, cela ne ' t fonctionne si vous avez plus dune clé!
id_rsa
a un mot de passe dessus.ssh-add
, mais simplement de lancerssh
directement. Vous devriez voir apparaître une fenêtre qui servira de phrase de passe pour la clé, et avec une case à cocher pour vous permettre de la stocker dans votre trousseau.