Oui, c'est l'un des problèmes des clés SSH sans mot de passe. Si vous stockez une clé privée sur le serveur A qui vous permet de vous connecter au serveur B, l'accès au serveur A est effectivement l'accès au serveur B. (Ce n'est pas l'inverse qui n'est pas vrai - l'accès au serveur B n'entraînerait pas de compromis immédiat du serveur A, en supposant que vous n'avez pas non plus configuré de clés SSH pour autoriser les connexions sans mot de passe dans cette direction.
Il y a quelques choses que vous pouvez faire pour atténuer cela:
- Si le processus n'a pas besoin d'être entièrement automatisé, ajoutez un mot de passe à vos clés SSH. (Cela ne fonctionnera probablement pas pour vous, car vous notez que c'est pour une sauvegarde)
- Pour les connexions sans mot de passe sous votre propre compte à plusieurs machines, je recommande de créer une clé avec mot de passe pour chaque machine sur laquelle vous tapez physiquement et d'utiliser un agent SSH pour stocker la clé en mémoire pendant que vous l'utilisez. Le transfert d'agent devrait vous permettre de "sauter" d'hôte à hôte sans créer de clés sur chaque hôte distant.
- Pour les clés SSH automatisées et sans mot de passe, je recommande de restreindre les commandes que la clé peut exécuter. Dans votre
authorized_keys
fichier, préfixez chaque clé avec:
command="<allowed command line here>",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty
Il y a 8-9 ans, j'ai travaillé dans un environnement utilisateur partagé avec des centaines d'utilisateurs locaux, et les connexions basées sur les clés SSH ont été désactivées car il n'y avait aucun moyen d'appliquer des politiques de mot de passe sur les clés. Tant que vous contrôlez pleinement le scénario, de nos jours, les clés SSH sont nettement meilleures que l'utilisation de mots de passe.
Dans tous les environnements que j'ai contrôlés, j'ai toujours été un véritable adepte du minimum de privilèges possible pour les comptes de service.
Dans ce cas, je suggère de veiller à ce que le compte d'utilisateur sur le serveur distant ne soit autorisé à exécuter qu'un petit ensemble d'exécutables étroitement défini. Vous pouvez utiliser plusieurs comptes sur le côté distant et sudo pour y parvenir.
Même dans ce cas, vous êtes toujours soumis aux bogues locaux d'élévation de privilèges, alors soyez méticuleux et surveillez étroitement les bogues de sécurité.
la source