Paradeepchhetri n'est pas tout à fait correct.
sshd_config non modifié de Debian contient les éléments suivants :
PubkeyAuthentication yes
PermitEmptyPasswords no
UsePAM yes
Ainsi, la connexion via ssh ne fonctionnerait que pour les utilisateurs qui ont un champ de mot de passe rempli dans /etc/shadow ou une clé ssh en ~/.ssh/authorized_keys . Notez que la valeur par défaut pour PubkeyAuthentication est yes et pour PermitEmptyPasswords est no , donc même si vous les supprimez, le comportement sera le même.
Dans l'exemple de question, www-data par défaut ne sera pas autorisé à se connecter puisque le programme d'installation de Debian n'attribue pas de mot de passe ni ne crée de clé pour www-data .
pam_access , AllowUsers et AllowGroups en sshd_config peut être utilisé pour un contrôle plus précis si nécessaire. Dans Debian, il est fortement recommandé de UsePAM .
Par défaut, la connexion est autorisée pour tous les utilisateurs sur Debian.
Vous pouvez le changer en autorisant certains utilisateurs à se connecter en modifiant /etc/ssh/sshd_config fichier.
Comme mentionné dans la page de manuel de sshd_config.
AllowUsersCe mot-clé peut être suivi d'une liste de modèles de nom d'utilisateur, séparés par
les espaces. Si spécifié, la connexion n'est autorisée que pour les noms d'utilisateur qui correspondent à l'un des modèles. Seuls les noms d'utilisateur sont valides ; un ID utilisateur numérique n'est pas
reconnu. Par défaut, la connexion est autorisée pour tous les utilisateurs. Si le motif prend la forme[email protected]puisUSERetHOSTsont vérifiés séparément, limitant les connexions à des utilisateurs particuliers à partir d'hôtes particuliers. Les directives d'autorisation/de refus sont traitées dans l'ordre suivant :DenyUsers,AllowUsers,DenyGroup, et enfinAllowGroups.
Par défaut, SSH server n'est même pas installé. Vous auriez à installer le openssh-server package avant que quiconque puisse s'y connecter en SSH.
Après cela, tout utilisateur doit passer deux vérifications :
- Authentification SSH
- Vérifications de compte PAM
L'authentification SSH signifie que soit l'utilisateur doit avoir un mot de passe valide en /etc/shadow ou ils ont une clé publique SSH valide avec les bonnes autorisations dans le ~/.ssh/authorized_keys de l'utilisateur cible .
Les mots de passe valides sont décrits plus en détail dans le crypt(3) page de manuel, mais essentiellement si le 2ème champ de l'utilisateur dans /etc/shadow est quelque chose commençant par $NUMBER$ , c'est probablement valide, et si c'est * ou ! , c'est invalide.
Les vérifications de compte PAM signifient essentiellement que le compte n'a pas expiré. Vous pouvez vérifier cela en utilisant chage -l USERNAME .
Alors pour répondre à vos questions, à ma connaissance :
- Seuls root et le compte que vous créez pendant l'assistant d'installation peuvent se connecter sur un nouveau système
- Non, car
www-dataa un mot de passe haché de*et il n'y a pas de~www-data/.ssh/authorized_keysfichier - Il n'y a pas de liste unique, car il y a plusieurs exigences, mais pour avoir une idée, vous pouvez essayer d'exécuter
grep -v '^[^:]*:[!*]:' /etc/shadow