Comment puis-je verrouiller mon propre compte de la connexion ssh à distance avec un mot de passe?

10

Je ne veux pas désactiver complètement la connexion à distance avec mot de passe, mais je veux que mon compte soit uniquement accessible avec l'authentification par paire de clés (il y a d'autres utilisateurs qui veulent utiliser des mots de passe pour se connecter). Est-il possible de changer cela sur une base par utilisateur, idéalement sans changer les paramètres du système?

Et pour être clair, mon compte a un accès sudo, donc je ne veux pas verrouiller le mot de passe.

phunehehe
la source

Réponses:

9

Vous pouvez utiliser l'option Correspondance dans sshd_config

Match Introduit un bloc conditionnel. Si tous les critères de la ligne de correspondance sont satisfaits, les mots clés des lignes suivantes remplacent ceux définis dans la section globale du fichier de configuration, jusqu'à une autre ligne de correspondance ou à la fin du fichier. [1]

Donc, à la fin de ce fichier, vous pouvez spécifier:

Match User yourusername
PasswordAuthentication no

Voir man 5 sshd_configpour toutes les options disponibles.

[1] http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5

jasonwryan
la source
C'est déjà bien, mais je veux voir si je peux me passer de l'édition de sshd_config.
phunehehe
2
Étant donné que vous souhaitez effectuer un changement de système, c'est-à-dire un changement qui n'a pas d' impact sur les autres utilisateurs, cela semble peu probable ...
jasonwryan
et qu'en est-il de ~ / .ssh / config? Avez-vous essayé d'y inclure les paramètres?
ttyS0
1
AFAK ~ / .ssh / config pour le client, pas le serveur.
Adam Byrtek
1

La réponse de Jasonwryan va être la bonne façon de faire ce changement. Le seul ajout que je ferais est que vous pouvez définir la correspondance sur la base d'un groupe afin que tous les utilisateurs du groupe de roues soient tenus d'utiliser l'authentification par clé tandis que d'autres pourraient utiliser des mots de passe.

Je sais que vous voulez faire cela sans changer les fichiers de configuration du système, mais il y a une bonne raison pour laquelle cela ne sera pas possible. Dans votre tête, il est logique que votre utilisateur soit en mesure d'instaurer une politique de connexion plus sécurisée, mais simplement parce que dans votre esprit, c'est une option plus sécurisée ne change pas le fait qu'il s'agit toujours d'une modification des exigences de connexion au système pour un utilisateur distant.

Pour comprendre pourquoi c'est un problème, imaginez le scénario à l'envers. L'administrateur système (qui peut modifier les fichiers de configuration du système) définit le système sur la connexion basée sur les clés uniquement. Ensuite, certains utilisateurs arrivent et n'ont accès qu'à leur propre fichier utilisateur et définissent leur compte pour autoriser l'authentification par mot de passe, remplaçant la stratégie système. BEEEEEEP . Problème de sécurité!

Cela explique-t-il pourquoi le type de modification que vous souhaitez effectuer n'est possible qu'à partir du fichier de configuration système?

Caleb
la source
Il est difficile de penser de cette façon, car si j'étais un utilisateur normal qui ne fait pas de sudo, je peux facilement configurer mes clés puis verrouiller le mot de passe, ce qui rend mon compte "authentification par clé uniquement".
phunehehe
Dans une autre pensée, je pourrais verrouiller mon mot de passe chaque fois que je suis sur le point de me déconnecter, ce qui devrait interdire toute connexion par mot de passe pour mon compte. Ensuite, une fois connecté avec mes clés, je pourrais réactiver le mot de passe sur sudo. Évidemment, ce n'est pas une bonne solution, mais cela me fait penser que c'est possible.
phunehehe
1
Vous ne pouvez le faire que parce que l'administrateur système a autorisé l'authentification par clé et que vous ajoutez uniquement des restrictions pour vous-même, sans rien changer. La désactivation de votre mot de passe le définit simplement sur une valeur non valide, cela ne change pas l'authentification autorisée par le démon système.
Caleb
"ajouter des restrictions pour vous-même, ne rien changer", c'est exactement ce que je veux faire.
phunehehe
@Caleb: Il n'y aurait aucun problème de sécurité à permettre authorized_keysde mettre plus de restrictions, comme Phunehehe le souhaite. Par exemple, vous authorized_keyspouvez restreindre certaines touches à certaines commandes.
Gilles 'SO- arrête d'être méchant'
0

Ajout de restrictions pour vous-même, sans rien changer

Pourquoi pas côté client, s'il est sûr que ssh serait le client à utiliser pour les tentatives de connexion? Si oui, essayez d'apporter des modifications à ssh_config au lieu de sshd_config. Vérifiez le paramètre «PasswordAuthentication No» et PreferredAuthentications

Nikhil Mulley
la source