Importer une clé SSH

De Adadov.net wiki
Ecrit Par : Adadov

Ajouter sa clé à un utilisateur SSH[modifier | modifier le wikicode]

Pour ajouter sa clé à un utilisateur distant dont on connaît le mot de passe, ll existe un utilitaire sous linux qui le fait automatique ssh-copy-id

Par défaut il importe les clés présentes dans votre agent SSH

[root@linux] # ssh-copy-id utilisateur@serveurdistantdblclick to copy

Vous pouvez égalemennt spécifier le fichier de clé à importer

[root@linux] # ssh-copy-id -f fichier_clé utilisateur@serveurdistantdblclick to copy

Import par lots[modifier | modifier le wikicode]

Pour l'import par lots il a fallut être un peu plus créatif ...

On va passer par une boucle bash et utiliser un autre utilitaire magique sshpass, il va permettre d'envoyer le mot de passe via l'entrée standard (depuis la ligne de commande).

Avec un mot de passe unique[modifier | modifier le wikicode]

Si vous êtes dans le cas, qu'il faudrait absolument éviter, d'un mot de passe unique pour tous les utilisateurs, il suffira d'un fichier contenant les noms d'utilisateurs, on peut utiliser directement l'export CSV des comptes depuis cPanel pour faire simple.

awk -F',' '{system(sprintf("sshpass -p %s ssh-copy-id -f votre_fichier_clé %s", "#MOTDEPASSE#, $3))}' export_cpanel.csv

Vous pouvez également utiliser un fichier de votre fabrication, le plus simple sera de mettre simplement 1 nom d'utilisateur par ligne, il suffit de modifier légèrement le script

awk -F'\t' '{system(sprintf("sshpass -p %s ssh-copy-id -f votre_fichier_clé %s", "#MOTDEPASSE#", $1))}' votre_fichier_utilisateurs.txt

Des mots de passe différents[modifier | modifier le wikicode]

Dans ce cas il faudra faire le fichier vous même avec le format suivant : "nom d'utilisateur<TAB>motdepasse". J'utilise la tabulation car il est très peu probable de la trouver dans les mots de passe.

awk -F'\t' '{system(sprintf("sshpass -p %s ssh-copy-id -f votre_fichier_clé %s", $2, $1))}' votre_fichier_utilisateurs.txt