La création et l'installation d'une clé d'authentification par clé publique SSH basée sur Unix est simple, et c'est presque la même chose, mais c'est un problème.
Je voulais automatiser cela autant que possible.
Je pense que ce que vous faites généralement est comme ça.
# (1)Création de clé
ssh-keygen -N "" -t rsa -f ~/.ssh/id_rsa
# (2-a)Transférer la clé sur le serveur
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
# (2-b)Ou autorisé manuellement le serveur_Ajouter aux clés
cat ~/.ssh/id_rsa.pub| ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/ && chmod 755 ~/"
# (3)Ajoutez des informations de clé privée si nécessaire
vi ~/.ssh/config
Je ne l'utilise pas tous les jours S'il y a beaucoup de serveurs cibles, ce sera un problème. Je pense que cela peut être automatisé. Je pensais que c'était le déclencheur.
Il a été confirmé qu'il fonctionne sur Mac OS X et CentOS 7. Je pense que ssh peut être utilisé sous Unix / Linux, et il peut être utilisé si Python 2.7 fonctionne.
Vous pouvez exécuter les commandes nécessaires de (1), (2) et (3) avec une seule commande. Si vous avez besoin de (2), vous ne devez transférer le mot de passe du serveur qu'une seule fois.
Soyez assuré que les commandes exécutées dans les coulisses sont affichées en vert (?)
Je pense que c'est pratique lorsque vous essayez de définir l'authentification par clé publique pour le moment à partir de l'état vide lorsque vous avez emprunté un VPS, etc.
Environnement dans lequel python2.7.x peut être exécuté Le programme lui-même est transformé en une seule source afin qu'il puisse être manipulé facilement.
Cliquez ici pour le référentiel https://github.com/yuki2006/pubkey
Si seulement le corps principal suffit
wget https://raw.githubusercontent.com/yuki2006/pubkey/master/pubkey.py
Parce qu'il gère les clés privées Veuillez n'utiliser que ceux qui comprennent le principe de fonctionnement.
Le développeur ne garantit pas que des problèmes surviendront avec cet outil.
python pubkey.py
#Ou avec l'autorisation d'exécution
./pubkey.py
./pubkey.py -h
usage: pubkey.py [-h] [-l] [-p PrivateKeyPath] [-k] [-c] [-a ALIAS]
[-N PassPhrase]
server
positional arguments:
server user@server
optional arguments:
-h, --help show this help message and exit
-l, --Avec l'option LocalOnly, l'opération sur le serveur
Je ne travaillerai pas.
-p PrivateKeyPath, --private PrivateKeyPath
chemin de la clé privée[default
/Users/yuki2006/.ssh/id_rsa]
-k, --générer une clé avec keygen keygen
-c, --config .ssh/Écrire les informations de l'hôte dans la configuration
-a ALIAS, --alias ALIAS
-Valide uniquement avec l'option c,
Du fichier de configuration
Définissez le champ Host sur this
-N PassPhrase Spécifiez la phrase de passe. Les caractères vierges sont également possibles
C'est Noh.(-(Valable lorsque l'option k)
Options minimales
./pubkey.py [email protected]
Exécutez (2) avec ~ / .ssh / id_rsa.pub comme clé publique.
Ajoutez la clé publique à ~ / .ssh / authorized_keys à [email protected].
À ce stade, si la commande ssh-copy-id
peut être utilisée localement, utilisez (2-a), et si elle ne peut pas être utilisée, exécutez (2-b).
Veuillez saisir le mot de passe du serveur.
./pubkey.py -k [email protected]
Exécutez (1) avant d'exécuter (2). À ce stade, (1) est simplement appelé, entrez donc la phrase de passe en fonction de l'affichage.
./pubkey.py -N "" -k [email protected]
C'est pour ceux qui ont du mal à taper une phrase de passe lors de l'appel (1). L'option -N est attachée lors de l'appel de ssh-keygen.
./pubkey.py -p ~/.ssh/key -N "" -k [email protected]
./pubkey.py --private ~/.ssh/key -N "" -k [email protected]
Si vous souhaitez utiliser autre chose que la clé privée par défaut. Spécifiez le chemin de la clé privée après -p. La clé publique utilisée est celle avec .pub ajouté, comme ~ / .ssh / key.pub.
./pubkey.py -c -p ~/.ssh/key -N "" -k [email protected]
Avec l'option -c, le texte suivant sera ajouté à ~ / .ssh / config. C'est l'automatisation du processus de (3).
Host sample.com
User hoge
IdentityFile ~/.ssh/key
./pubkey.py -a sample -c -p ~/.ssh/key -N "" -k [email protected]
En termes simples, il sera ajouté comme ci-dessous.
Host sample
hostname sample.com
User hoge
IdentityFile ~/.ssh/key
Si vous définissez ceci, vous pouvez vous connecter simplement en appuyant comme ceci. (Nom d'utilisateur et nom d'hôte omis)
ssh sample
./pubkey.py -l -a sample -c -p ~/.ssh/key -N "" -k [email protected]
(2) n'est pas exécuté. Spécifiez quand vous voulez créer un keygen ou un fichier de configuration mais n'avez pas besoin de mettre la clé publique sur la télécommande. Principalement pour le débogage.
En fait, j'ai confirmé qu'il était possible d'améliorer l'efficacité en l'utilisant pour de nombreuses unités et en faisant en sorte que les gens l'utilisent.
Il peut y avoir des doutes sur la façon d'écrire Python. Il est supérieur ou égal à 2.7 car il utilise argparse, Tous les processus principaux devraient fonctionner, donc j'aimerais envisager de travailler avec 2.6, etc. si demandé.
Si vous avez des problèmes ou des demandes d'extraction, veuillez les publier sur github. Au contraire, faites-moi savoir s'il existe un outil utile sans l'utiliser.