Je cherchais une méthode pour restreindre l'accès à un dépôt Debian privé et pouvoir m'authentifier de manière non interactive (c'est-à-dire en utilisant un script)
L'article le plus utile que j'ai trouvé est en fait celui du site d'administration Debian mais la méthode sécurisée utilise ssh et des clés publiques / privées. Cela fonctionne très bien, mais la clé publique de chaque hôte doit se trouver dans le fichier distant authorized_keys pour s'authentifier avec succès. Cela ne dit rien sur la fourniture de mot de passe à ssh: // mais je suppose que cela devrait être possible.
Avez-vous essayé d'autres alternatives (par exemple ftps)?
Merci d'avance
Réponses:
Si vous exécutez toujours
apt-get
sur vos serveurs à la main (pas deapt-get
commandes automatiques lancées par crons), alors vous pourriez envisager d'utiliser le transfert d'agent ssh . Cela évite d'avoir à gérer une paire de clés publique / privée par serveur que vous gérez, et c'est probablement plus sûr que de laisser des clés privées sur chaque serveur.Configuration initiale - connectez-vous aux serveurs que vous souhaitez gérer et ajoutez quelque chose comme ceci
/etc/apt/sources.list
(cet exemple suppose que vous souhaitez que vos serveurs se connectent aumanager
compte):créer une paire de clés privées / publiques sur votre propre ordinateur, avec votre identifiant
johndoe
par exemple (à condition que votre ordinateur fonctionne sur Debian: sinon, vous pouvez le faire à partir d'un serveur Debian dédié à la gestion):copiez votre clé publique sur le serveur de référentiel dans
/home/manager/.ssh/authorized_keys
:Une fois par session de gestion
démarrez l'agent ssh sur votre machine en tapant:
ajoutez votre clé à l'agent (cela nécessitera votre phrase secrète):
Gérer un serveur
se connecter au serveur que vous souhaitez gérer à l'aide
ssh -A
(-A
active le transfert d'agent):passer à root (si vous voulez utiliser,
sudo
vous devez configurer/etc/sudoers
ou sinonsudo
interrompra le transfert d'agent, lisez ceci ):vous devriez maintenant pouvoir vous connecter au compte du gestionnaire du référentiel en utilisant ssh sans taper à nouveau votre mot de passe, grâce au transfert d'agent. Par conséquent,
apt-get
devrait fonctionner très bien:Fin de votre session de gestion
Une fois la gestion de vos serveurs terminée, supprimez vos clés de l'agent:
Les avantages
ssh-ask
afin d'accepter / refuser chaque tentative d'utilisation de votre clé.la source
Une façon de procéder consiste simplement à autoriser un certain ensemble d'adresses IP à accéder au référentiel. Cela fonctionne très bien pour le LAN et le VPN.
Simple et efficace.
la source
La solution ssh + clés publiques / privées n'est pas si mauvaise:
ssh-keygen
, puisssh-copy-id [email protected]
éditez
/etc/apt/sources.list
et ajoutez quelque chose comme:Certes, cela vous oblige à mettre la clé publique de chaque serveur dans le
~/.ssh/authorized_keys
fichier sur le serveur, mais ce n'est pas si compliqué (voir ci-dessus) et cela vous donne le contrôle sur les serveurs que vous autorisez ou non à un moment donné (vous pouvez supprimer une clé à à tout momentauthorized_keys
).la source
Vous pouvez configurer un accès https à votre référentiel, sécurisé par login / mot de passe (authentification de base). Le problème est que vous devez mettre le login / mot de passe en texte clair
/etc/apt/sources.list
(note: il y a un patch pour permettre à la place le login / mot de passe/root/.netrc
).la source
Le lien dans votre question montre plusieurs méthodes. Vous voulez le numéro 2, https + authentification de base.
la source