Python >> Tutoriel Python >  >> Python

Création de clés SSH sur macOS Sierra

Le déploiement d'applications Python nécessite généralement des clés SSH. Une clé SSH possède à la fois un fichier de clé publique et un fichier de clé privée. Vous pouvez utiliser la clé privée pour vous authentifier lors de la synchronisation de référentiels Gitre distants, vous connecter à des serveurs distants et automatiser les déploiements de votre application via des outils de gestion de configuration comme Ansible. Apprenons à générer des paires de clés SSH sur macOS Sierra.

Génération de nouvelles clés

Ouvrez une nouvelle fenêtre de terminal sur macOS en allant dans Applications/Utilitaires et en ouvrant "Terminal".

Le ssh-keygen La commande fournit une interface de ligne de commande interactive pour générer à la fois les clés publiques et privées. Appelez ssh-keygen avec le -t suivant et -b arguments pour s'assurer que nous obtenons une clé RSA de 4096 bits. Notez que vous devez utilisez une clé avec 2048 bits ou plus dans macOS Sierra ou le système ne vous permettra pas de vous connecter aux serveurs avec.

En option, vous pouvez également spécifier votre adresse e-mail avec -C (sinon, un sera généré à partir de votre compte macOS actuel) :

ssh-keygen -t rsa -b 4096 -C [email protected]

La première invite que vous verrez vous demandera où enregistrer la clé. Cependant, il y a en fait deux fichiers qui seront générés :la clé publique et la clé privée.

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/matt/.ssh/id_rsa):

Cette invite fait référence à la clé privée et tout ce que vous entrez générera également un deuxième fichier pour la clé publique qui a le même nom et .pub annexé.

Si vous avez déjà une clé, spécifiez un nouveau nom de fichier. J'utilise de nombreuses clés SSH, donc je les nomme souvent "test-deploy", "prod-deploy", "ci-server" avec un nom de projet unique. Le nommage est l'un de ces problèmes informatiques difficiles, alors prenez le temps de trouver un système qui fonctionne pour vous !

Ensuite, vous verrez une invite pour une phrase de passe facultative :

Enter passphrase (empty for no passphrase):

Que vous souhaitiez ou non une phrase secrète dépend de la manière dont vous utiliserez la clé. Le système vous demandera la phrase secrète chaque fois que vous utiliserez la clé SSH, bien que macOS puisse stocker la phrase secrète dans votre trousseau système après la première fois que vous l'entrerez. Cependant, si vous automatisez les déploiements avec un serveur d'intégration continue tel que Jenkins, vous n'aurez pas besoin de phrase secrète.

Notez qu'il est impossible de récupérer une phrase de passe si elle est perdue. Conservez cette phrase de passe en toute sécurité, car sinon une clé entièrement nouvelle devrait être générée.

Entrez la phrase secrète (ou appuyez simplement sur Entrée pour ne pas avoir de phrase secrète) deux fois. Vous verrez une sortie comme celle-ci :

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/matt/.ssh/deploy_prod.
Your public key has been saved in /Users/matt/.ssh/deploy_prod.pub.
The key fingerprint is:
SHA256:UnRGH/nzYzxUFS9jjd0wOl1ScFGKgW3pU60sSxGnyHo [email protected]
The key's randomart image is:
+---[RSA 4096]----+
|        ..+o++**@|
|       . +.o*[email protected]=|
|        . oo*=B.*|
|       . .  =o=+ |
|      . S E. +oo |
|       . .  .  =.|
|              . o|
|                 |
|                 |
+----[SHA256]-----+

Votre clé SSH est prête à être utilisée !

Et maintenant ?

Maintenant que vous avez vos clés publiques et privées, je vous recommande de créer et de déployer des applications Web Python telles que :

  • Construire votre premier bot Slack
  • Envoi de messages photo ou vidéo via une API REST
  • Composer des appels téléphoniques sortants avec le framework Web Bottle

ssh-keygen supplémentaire ressources de commande :

  • Clés SSH sur macOS Sierra
  • Générer une nouvelle clé SSH et l'ajouter au ssh-agent

Des questions? Contactez-moi via Twitter@fullstackpythonor @mattmakai. Je suis également sur GitHub avec le nom d'utilisateur mattmakai.

Vous voyez quelque chose qui ne va pas dans ce message ? La source de cette page sur GitHuband soumet une pull request.