2 votes

Création automatique d'un utilisateur pour un serveur SSH ?

J'essaie de configurer un serveur SSH qui, lors d'une tentative de connexion avec la bonne clé publique, crée un nouveau compte utilisateur s'il n'en existe pas.

Lors de la connexion, j'aimerais qu'un script spécifique s'exécute pour cet utilisateur, qui en sortant, le déconnecterait.

Le but est d'avoir un serveur qui exécutera un script spécifié pour quiconque se connecte, mais avec son propre compte pour les petits fichiers de sauvegarde.

J'utilise actuellement Ubuntu 14.10 avec seulement une CLI.

Je ne suis pas particulièrement préoccupé par la sécurité de la machine dans la mesure où elle ne sera utilisée que pour les jeux et ne contiendra aucune information personnelle.

EDIT : Bien que je pense que cette question serait toujours utile si elle était répondue dans sa forme originale, j'ai trouvé une solution de contournement qui me convient pour le moment : Au lieu de faire en sorte que ssh fasse tout le travail de configuration des utilisateurs à la volée, vous pouvez configurer un utilisateur pour qu'il soit accessible via ssh, et le script de lancement de cet utilisateur peut être celui qui gère les comptes d'utilisateurs, en les créant si nécessaire, puis en connectant l'utilisateur au système de répertoire de fichiers correct pour son "compte".

1voto

Steve McKibbon Points 31

J'ai trouvé une solution de rechange qui me convient pour l'instant : Au lieu de laisser ssh faire tout le travail de configuration des utilisateurs à la volée, vous pouvez définir un utilisateur qui sera accessible via ssh :

modifier /etc/ssh/sshd_config ajouter une ligne 'AllowUser <username here>'

et le script de lancement de cet utilisateur peut être celui qui gère les comptes d'utilisateurs, les créant au besoin, puis connectant l'utilisateur au système de répertoire de fichiers correct pour son "compte".

Pour définir un script à exécuter pour un utilisateur spécifique se connectant via SSH :

modifier /etc/ssh/sshd_config en ajoutant les lignes :

Match user username
    ForceCommand /path/to/script

Où le nom d'utilisateur est celui sur lequel vous voulez forcer la commande.

0voto

s1mmel Points 1794

Une autre façon de faire, avoir un utilisateur pour créer des comptes, lui donner une clé publique, puis au lieu de lui donner un /bin/bash pour se connecter, vous pourriez lui donner un script, qui créerait un utilisateur puis après avoir exécuté le script quitterait la connexion.

Il devrait être possible de créer un fichier texte, dans lequel vous placerez les informations et taperez le nom d'utilisateur et le mot de passe, comme vous le feriez sur la console.

Fichier texte comme suit

jim <return>
a3drtZdf <return>

et le script a peut-être une read -p "username" $USER et un read -p password $PASS et utiliserait ensuite ces valeurs dans le script pour effectuer un adduser -u $USER -p $PASS

Je ne sais pas si ça va marcher, mais en fait ça devrait. J'ai fait quelque chose de similaire, mais pas exactement la même chose.

Donc, à la fin, vous feriez

ssh useradd@example.com < values.txt -i id_rsa_useradd

Le script va attraper l'entrée et l'exécute puis quitte.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X