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.
AllowUsers
Ce 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]
puisUSER
etHOST
sont 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-data
a un mot de passe haché de*
et il n'y a pas de~www-data/.ssh/authorized_keys
fichier - 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