web-dev-qa-db-fra.com

Désactiver le SSH interactif au niveau utilisateur

Je me connecte à un serveur que je ne contrôle pas via SSH.

J'utilise un accès par clé publique et je n'ai pas besoin de pouvoir me connecter avec un mot de passe interactif au clavier.

Je souhaite désactiver l'accès interactif au clavier à mon utilisateur afin d'éviter que d'autres puissent le pirater de cette manière.

Étant donné que je ne contrôle pas le serveur, existe-t-il un moyen de configurer le fichier de configuration de mon utilisateur pour empêcher l'accès interactif au clavier?

6
Richard

Si vous n'avez absolument aucun contrôle sur le serveur, je ne vois pas de moyen de le faire, car vous ne contrôlez pas les paramètres du serveur, ce qui devrait être le cas.

Ce que vous devez faire est d’ajouter ceci au fichier/etc/ssh/sshd_config:

PasswordAuthentication no

Désormais, cela désactiverait efficacement l’authentification par mot de passe pour tous les utilisateurs , ce qui peut être indésirable. Ce que vous pourriez faire alors, c'est de placer cette directive de configuration dans un bloc Match, de sorte qu'elle ne s'applique qu'à votre utilisateur, dans le même fichier de configuration:

Match user yourusername
PasswordAuthentication no

Si vous pouviez demander à l'administrateur du serveur de le faire pour vous, cela pourrait être la solution.

Une autre solution consiste à définir un mot de passe très long, aléatoire et compliqué pour votre utilisateur, afin de vous protéger de manière raisonnable des tentatives d'intrusion forcées brutales. La plupart des attaquants utiliseraient probablement une technique basée sur un dictionnaire, aussi longtemps que votre mot de passe est long et aléatoire, il devrait être relativement sûr.

Voir "man sshd_config" pour plus de détails. De plus, la solution que je propose a été suggérée ici .

11
roadmr

Vous devez juste éditer cette ligne du fichier /etc/ssh/sshd_config de yes à no:

#ChallengeResponseAuthentication yes
ChallengeResponseAuthentication no
1
Nishant

[Je suppose que vous utilisez BASH comme shell de connexion. Si non, ajustez correctement ...]

Dans ~/.ssh/authorized_keys, ajoutez une spécification de commande à chaque ligne, comme suit:

command="ssh_key=XXX /bin/bash -l" ssh-dss AAAA...K3E= me@mymachine

Dans ~/.bash-profile, placez le piège suivant en haut:

if [ "${ssh_key}" != "XXX" ]; then
  echo "${SSH_CLIENT}" | mailx -s "password login attempt!" me@mailservice
  exit
fi

Vous n'aurez plus qu'à recevoir du courrier lorsque quelqu'un utilisera un mot de passe pour accéder à votre compte.

0
Kyler Laird