Importer une clé SSH
Ajouter sa clé à un utilisateur SSH
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@serveurdistant | dblclick to copy |
Vous pouvez égalemennt spécifier le fichier de clé à importer
[root@linux] # | ssh-copy-id -f fichier_clé utilisateur@serveurdistant | dblclick to copy |
Import par lots
Attention à la sécurité Le mot de passe pourrait se retrouver dans votre historique console !! Pensez à modifier l'historique |
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
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
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