J'ai récemment activé l'authentification à deux facteurs à l'aide de google-authentator sur mon serveur SSH. Cependant, je suis maintenant confronté à un problème:
J'ai un groupe d'utilisateurs différent sur mon serveur que j'utilise pour SFTP, mais ce groupe n'est plus en mesure de se connecter car 2FA n'est pas configuré pour les utilisateurs du groupe. Est-il possible de désactiver le module google-authentator pour ce groupe? L'activer pour les utilisateurs du groupe n'est pas une option car plusieurs utilisateurs utiliseront ce compte.
PS: j'utilise openssh-server
Vous pouvez utiliser le module pam_succeed_if
(voir la page de manuel) avant le pam_google_authenticator
pour ignorer cette partie pour votre groupe:
# the other authentication methods, such as @include common-auth
auth [success=1 default=ignore] pam_succeed_if.so user ingroup group
auth required pam_google_authenticator ...
Certains clients SFTP peuvent gérer 2FA. Par exemple, j'utilise 2FA avec FileZilla et WinSCP et ils fonctionnent. De plus, j'ai configuré l'authentification ssh-key et cela fonctionne aux côtés de 2FA.
Cependant, votre question est intéressante et j'ai réalisé un bref sondage. J'ai trouvé cette réponse .
Il est donc possible (et facile) d’exécuter des instances ssh distinctes. Je l'ai déjà testé.
Faites des copies séparées du fichier sshd_config
.
$ Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_pwd
$ Sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_2fa
Editez ces nouveaux fichiers config
. Une des choses que vous devez changer est le shh port. Selon l'exemple:
2.a) sshd_config_pwd
les lignes spécifiques sont les suivantes:
Port 1022
...
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM no
2.b) sshd_config_2fa
les lignes spécifiques sont les suivantes:
Port 2022
...
PasswordAuthentication no
ChallengeResponseAuthentication yes
UsePAM yes
Ouvrez les ports nécessaires dans le pare-feu. Selon l'exemple:
$ Sudo ufw limit 1022
$ Sudo ufw limit 2022
Exécutez les nouvelles instances ssh:
$ Sudo /usr/sbin/sshd -f /etc/ssh/sshd_config_pwd
$ Sudo /usr/sbin/sshd -f /etc/ssh/sshd_config_2fa
C'est tout.