J'essaie de construire un référentiel privé apt en utilisant reprepro. J'ai réussi à obtenir une connexion SSH sans mot de passe après la création d'un trousseau de clés SSH. Je peux réussir la connexion au référentiel si je suis SSH.
Sur la machine client, j'ai ajouté le référentiel dans la liste des sources d'apt comme:
deb ssh://[email protected]:/home/repo/repos/apt/ubuntu xenial main
Mais lorsque j'essaie d'utiliser apt-get update
, je dois toujours entrer le mot de passe, sinon il ne sera pas utilisé. Il montre seulement:
100% [Connecting to [email protected]]
Est-il possible qu'apt puisse utiliser ma clé pour accéder au référentiel sans entrer de mot de passe?
J'ai résolu ce problème en créant une clé ssh en tant que root sur la machine cliente. Après cela, j’ai eu besoin d’ajouter cette clé publique aux allowed_keys sur la machine du serveur Ubuntu. Maintenant, je peux utiliser le référentiel apt en utilisant ssh avec les clés sans entrer de mot de passe.
Vous devez ajouter la commande à/etc/sudoers. Jetez un coup d'œil à ceci Comment exécuter des commandes Sudo spécifiques sans mot de passe?
Une autre option consiste à ssh sans mot de passe avec l'utilisateur root, mais cela est généralement considéré comme une très mauvaise idée. Comment configurer un accès SSH sans mot de passe pour l'utilisateur root
Dans votre référentiel, devenez root avec Sudo su
puis exécutez la commande suivante:
echo "%Sudo ALL=NOPASSWD: /usr/bin/apt-get" >> /etc/sudoers
Cela permettra à tout utilisateur d’exécuter apt-get sans mot de passe. Cette commande est utilisée pour la mise à niveau, mais elle peut également être utilisée pour installer/désinstaller des packages ... soyez prudent. Je pense qu'il serait préférable d'utiliser le mot de passe ou d'activer les mises à jour automatiques sur le serveur.