Puede usar los siguientes comandos para lo mismo:
Método 1 (md5, sha256, sha512)
openssl passwd -6 -salt xyz yourpass
Nota: pasar -1
generará una contraseña MD5, -5
un SHA256 y -6
SHA512 (recomendado)
Método 2 (md5, sha256, sha512)
mkpasswd --method=SHA-512 --stdin
Métodos acepta md5
, sha-256
ysha-512
Método 3 (des, md5, sha256, sha512)
Como @tink sugirió, podemos actualizar la contraseña chpasswd
usando:
echo "username:password" | chpasswd
O puede usar una contraseña cifrada con chpasswd
. Primero generarlo usando esto:
perl -e 'print crypt("YourPasswd", "salt", "sha512"),"\n"'
Luego, puede usar la contraseña generada para actualizar:
echo "username:encryptedPassWd" | chpasswd -e
Esta contraseña cifrada la podemos usar para crear un nuevo usuario con contraseña, por ejemplo:
useradd -p 'encryptedPassWd' username
chpasswd -e
, asegúrese de usar comillas simples en la cadenaecho
en la que se encuentra; de lo contrario, si hay$
u otros caracteres especiales, no serán tratados literalmente.openssl passwd -1
cuál 1) no termina allí y 2) genera una sal aleatoria para usted (que tampoco termina en el historial de shell).openssl passwd
documentación para cualquiera que intente descubrir qué hace la-1
opción.python3 -c 'import crypt; print(crypt.crypt("test", crypt.mksalt(crypt.METHOD_SHA512)))'
- de la pregunta relacionada ServerFaultEn Ubuntu 12.04, hay mkpasswd (del paquete whois): front end sobrefeatured para crypt (3)
Dónde:
-m
= Calcular la contraseña usando el método TYPE. Si TYPE es de ayuda, se imprimen los métodos disponibles.-S
= sal utilizada.P.ej
fuente
Esta solución tiene los siguientes beneficios:
Vuelve a solicitar la contraseña para evitar errores.
Referencias
fuente
Para aquellos sin sistemas basados en Debian. Python3 funciona igual de bien.
NOTA: La cadena "prueba" es la contraseña que estamos generando como una cadena encriptada.
fuente
crypt.mksalt
no funciona al generar contraseñas para/etc/shadow
. ¡Pero el método de @ Alex131089 funciona!openssl
es una herramienta bastante universal.Ninguno de los métodos actuales es aceptable para mí: pasan la contraseña en la línea de comando (que termina en el historial de mi shell), requieren la instalación de utilidades adicionales (
python3
,makepasswd
), usan sales codificadas o usan viejas técnicas de hashing.Este método generaría hashes SHA-512 después de solicitar la contraseña y usaría una sal aleatoria.
Un método que utiliza Python 2 sin ninguna biblioteca no estándar:
Para hacerlo sin un aviso: (Esto dejará su contraseña en el historial de comandos)
fuente
ps
salida en una fracción de segundo que el comando se está ejecutando. (Lo más seguro es usar la versión que solicita la contraseña)El
openssl
y elchpasswd -e
par no funcionaron en mi caso en RHEL6. La combinaciónopenssl passwd
y elusermod -p
comando hicieron el trabajo.Genere el valor hash de la contraseña junto con el valor de sal:
Luego, copie la cadena encriptada a usermod. Asegúrese de envolverlo con comillas simples.
Compruébalo en el archivo de sombra.
fuente
Otro método más para generar contraseñas es usar la
openssl
herramienta.Generar contraseñas MD5
Generar contraseñas DES
fuente
Ampliando un poco las críticas a u150825 y Gert van den Berg, me encontré necesitando algo relativamente flexible para diferentes situaciones con diferentes sistemas de automatización. Decidí agregar a mi pequeña biblioteca de scripts útiles y escribir esto. Utiliza solo bibliotecas nativas de python 2.7+, y también funciona en python3.
Puedes recogerlo aquí si quieres. Es tan fácil dejar esto en su entorno si necesita usarlo mucho, alojado en http o lo que sea, y puede ejecutarlo en cualquier plataforma usando el intérprete de python predeterminado que tenga disponible, es bastante contando confiablemente con que funcione.
El valor predeterminado es solicitar usando getpass con mensajes en stderr (permitiendo una captura fácil de stdout), pero si conecta una cadena a ella, simplemente cosechará desde stdin. Dependiendo de cómo lo haga, es posible que tampoco aparezca en el historial de comandos, así que tenga en cuenta con qué está trabajando. Me gusta tener una herramienta flexible que se comporte de la manera esperada, en lugar de tener que depender de paquetes o python que alinean mi camino hacia la victoria de 10 maneras diferentes.
fuente
chpasswd
?