Comment désactiver la connexion SSH distante en tant que root à partir d'un serveur?

54

Pour des raisons de sécurité, mon entreprise souhaite que je ne permette à personne de pouvoir se connecter à notre serveur Ubuntu en tant que root à distance via SSH. Nous voulons toujours que le compte root existe, nous ne voulons pas qu'il puisse être connecté à distance. Comment pourrais-je accomplir ceci?

Merci beaucoup d'avance pour votre temps.

Rob S.
la source

Réponses:

85

Je suppose que vous vouliez vous connecter via SSH? Mettez la ligne suivante à /etc/ssh/sshd_config:

PermitRootLogin no

Si vous souhaitez empêcher certains utilisateurs de se connecter, placez-le dans le fichier de configuration:

DenyUsers root

Cela prend l'approche de la liste noire. La liste blanche est généralement préférable. Si votre société doit autoriser la robet les adminutilisateurs à se connecter au serveur, utilisez la directive de configuration suivante:

AllowUsers rob admin

Après avoir modifié le fichier de configuration, redémarrez le service ssh en utilisant la commande suivante:

sudo service ssh restart

Voir aussi la page de manuel .

Lekensteyn
la source
14
et sudo service ssh restartprendre effet
Maxim Yefremov
Je ne vois pas le fichier sshd_config, je vois celui-ci / etc / ssh / ssh_config.
Chinmaya B
@ChinmayaB Vous n'avez probablement pas installé le serveur OpenSSH. Essayezsudo apt-get install openssh-server
Lekensteyn
14

Editez le fichier /etc/ssh/sshd_config, recherchez

PermitRootLogin

et le mettre à no.

James Little
la source
Si vous faites cela sans ajouter d'utilisateurs, AllowUsers <username>cela ne permettrait-il à personne de faire SSH?
JGlass
1
@JGlass Vous pouvez peut-être confondre cette réponse avec celle ci-dessus avec des options supplémentaires - cette ligne spécifique empêche uniquement la racine de se connecter via SSH. S'il y a d'autres utilisateurs sur le système, toutes choses étant égales par ailleurs, ils pourront toujours se connecter via SSH à moins que vous ne vous connectiez DenyUserségalement.
Armadadrive
@armadadrive - ahh, merci pour la correction et l'explication!
JGlass
5

La configuration par défaut consiste à verrouiller le compte root afin que vous ne puissiez pas vous connecter en tant que root à distance. Vous n'avez rien d'autre à faire, à moins que vous ne souhaitiez également vous assurer que vous ne pourrez pas vous connecter à distance en tant que root à l'aide d'une clé RSA. Bien sûr, si vous ne voulez pas faire cela, alors ne configurez pas de clé racine.

psusi
la source
1
Ce n'était pas la valeur par défaut pour ma machine Linode Ubuntu 14.04. PermitRootLogina été mis à yeset il n'y avait pas AllowUsersou DenyUsersligne de configuration. À moins que quelque chose me manque, je ne pense pas qu'il soit prudent de supposer qu'il est verrouillé par défaut
andrewtweber
@andrewtweber, la connexion root n'est pas interdite via ssh config, mais à l'échelle du système en définissant le mot de passe root sur une valeur non valide que vous ne pouvez pas entrer. Ainsi, comme je l’ai dit, vous pouvez toujours utiliser ssh en tant que root avec une clé RSA, mais pas avec un mot de passe.
psusi
ok merci, pouvez-vous ajouter cette explication à votre réponse et ensuite je pourrai retirer mon
vote négatif
@andrewtweber, c'est déjà dans ma réponse ..
psusi
votre explication sur le verrouillage du compte root ne figure pas dans votre réponse. Quoi qu'il en soit, je ne peux pas supprimer un vote vers le bas à moins que votre réponse soit modifiée, alors allez-y et tenez-vous-en si vous voulez
andrewtweber