Partie 1 : Clé SSH sans mot de passe
Pour mettre en place une connexion SSH sans mot de passe pour l'utilisateur root, vous devez avoir un accès root sur le serveur. La méthode la plus simple consiste à temporairement permettre à root de se connecter via ssh avec un mot de passe. D'une manière ou d'une autre, vous devez disposer d'un accès root sur le serveur pour effectuer cette opération. Si vous n'avez pas d'accès root sur le serveur, contactez l'administrateur du serveur pour obtenir de l'aide.
Sur le client (d'où vous venez en ssh)
Créez d'abord une clé ssh sans mot de passe. Je vous suggère fortement de lui donner un nom plutôt que d'utiliser la clé par défaut.
ssh-keygen -f foo
L'option -f spécifie un nom de fichier, foo est un exemple, utilisez le nom de votre choix.
Lorsque l'on vous demande un mot de passe, appuyez simplement sur la touche "Entrée" et vous obtiendrez une clé sans mot de passe.
Vous devez ensuite transférer la clé sur le serveur. La méthode la plus simple consiste à utiliser ssh-copy-id
. Pour ce faire, vous devez temporairement permettre à l'utilisateur root de se connecter au serveur.
Sur le serveur (où vous vous rendez en ssh)
éditer /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
Assurez-vous d'autoriser l'utilisateur root à se connecter en utilisant la syntaxe suivante
PasswordAuthentication yes
PermitRootLogin yes
Redémarrer le serveur
sudo service ssh restart
Définir un mot de passe pour la racine, utiliser un mot de passe fort
sudo passwd
Sur le client :
A partir du client, transférer la clé au serveur
ssh-copy-id -i ~/.ssh/foo root@server
remplacez "foo" par le nom de votre clé et entrez le mot de passe racine de votre serveur lorsque cela vous est demandé.
Tester la clé
ssh -i ~/.ssh/foo root@server
Si cela fonctionne, désactivez le mot de passe de la racine et désactivez la connexion par mot de passe.
Sur le serveur :
sudo passwd -l root
Editar /etc/ssh/sshd_config
sudo nano `/etc/ssh/sshd_config`
Modifier les éléments suivants :
PasswordAuthentication no
PermitRootLogin without-password
Redémarrer le serveur
sudo service ssh restart
Sur le client (Test) :
Vous devriez maintenant pouvoir vous connecter avec votre clé sans mot de passe et vous ne devriez pas pouvoir vous connecter en tant qu'utilisateur sans clé.
ssh -i ~/.ssh/foo root@server
Partie 2 : Exécuter des commandes via sudo sans entrer de mot de passe
Vous configurez sudo pour pouvoir exécuter des commandes sans mot de passe.
La réponse à cette question se trouve à deux endroits :
Des deux, je suggère d'autoriser le moins d'ordres possible (première réponse) plutôt que tous les ordres (deuxième réponse).