Estoy configurando un servidor con vsftpd para permitir que los usuarios virtuales accedan a su espacio. Ahora funciona completamente, pero solo con las contraseñas CRYPT. Entonces
sudo htpasswd -c /etc/vsftpd/ftpd.passwd phpmyadmin
no me permitirá iniciar sesión, pero
sudo htpasswd -c -d /etc/vsftpd/ftpd.passwd phpmyadmin
será.
/etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
nopriv_user=vsftpd
virtual_use_local_privs=YES
guest_enable=YES
user_sub_token=$USER
local_root=/var/www/vhosts/$USER.universe.local
chroot_local_user=YES
hide_ids=YES
guest_username=vsftpd
/etc/pam.d/vsftpd
auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd crypt=2
account required pam_permit.so crypt=2
Instalé apache2.4.3 desde la fuente, así como PHP.
Cosas que he probado:
- Google mucho
- Establecer cripta = 2
- pregunte a sus amigos
- usa SHA (tampoco funciona)
- actualizar htpasswd y vsftpd
He estado luchando con esto durante una semana, espero que puedan ayudarme más
-m
generará hashes de estilo apache basados en MD5 ($apr1$salt$hash
)Respuestas:
htpasswd
genera hashes MD5 en el formato Apache, que puede verificar al ver que comienzan$apr1$
, pero PAM solo admite formatos que implementa la implementación de su plataformacrypt(3)
. Para Glibc, el equivalente (basado en MD5) sería$1$
. Solo necesita generar las contraseñas con una herramienta diferente. Aquí hay un ejemplo:Puede copiar este hash en su
ftpd.passwd
archivo en elusername:hash
formato, y debería funcionar.fuente
$1$
hash de contraseña MD5, hasta la primitiva MD5, por lo que no es completamentecrypt
consciente.Ampliando la respuesta de @ bonsaiviking, puede generar la contraseña de openssl md5 y agregarla al archivo ftpd.passwd en una línea usando el modo por lotes de htpasswd -b, y las opciones de texto sin formato -p de la siguiente manera:
El ejemplo anterior (Ubuntu) también crea un nuevo archivo ftpd.passwd si no existe usando -c
fuente
Los dos comandos que muestra son equivalentes porque la
-d
opción le dice a htpasswd que use crypt, que es el predeterminado para la mayoría de los sistemas operativos.Si desea contraseñas hash con md5, entonces debe usar
-m
Lo que muestra que la contraseña de la prueba se ha cifrado con md5.
fuente
-d
.