Cada vez que la tela se ejecuta, solicita la contraseña de root, puede enviarse junto con la misma para propuestas automáticas.contraseña de la tela
fab staging test
Cada vez que la tela se ejecuta, solicita la contraseña de root, puede enviarse junto con la misma para propuestas automáticas.contraseña de la tela
fab staging test
fab -h
le mostrará todas las opciones, también puede leerlos here.
En particular, y cito,
-p, --password = contraseña
Conjuntos env.password a la cadena dada; se usará como contraseña predeterminada al hacer conexiones SSH o llamando al programa sudo.
Sé que ha preguntado acerca de la contraseña, pero ¿no sería mejor configurar el sistema para que pueda hacer fabric (es decir, SSH) sin contraseña?
Para ello, en la máquina local hacer:
ssh-keygen
y estoy de acuerdo con todos los valores por defecto (si no tiene razones hacen de otra manera)cat ~/.ssh/id_rsa.pub
y copiar esa claveen la máquina remota :
mkdir ~/.ssh && chmod 700 ~/.ssh
touch ~/.ssh/authorized_keys2 && chmod 600 ~/.ssh/authorized_keys2
authorized_keys2
A partir de ahora su máquina remota “confía” en su máquina local y permite el registro en sin contraseña. Práctico.
Tuve que ejecutar 'chmod 700 ~/.ssh' para que funcione –
uso ssh-copy-id puede ser más rápido: ' 'ssh-copy-id'' Uso:/usr/bin/ssh-copy -id [-i [identity_file]] [user @] machine – HVNSweeting
+1 para ssh-copy-id. ¡Ordenado! – dennis
Una forma de hacer esto sin poner la contraseña en la lista de procesos (comandos aparecen en ps aux) es ponerlo en el fabfile.py así:
from fabric.context_managers import env
env.password = 'PASSWORD'
Deja que antes de cualquier cosa que vaya al sistema remoto y ya no pedirá una contraseña.
Solo una nota, esto genera un error en el último Fabric 1.5.3 y Paramiko 1.9.0. –
Simplemente elimine 'from fabric import env' – Crazenezz
Nuevo paquete es context_managers,' from fabric.context_managers import env' –
También puede establecer contraseñas por host. No era obvio para mí, así que aquí va para cualquiera que busque esto:
from fabric import env
env.hosts = ['[email protected]:port1', '[email protected]']
env.passwords = {'[email protected]:port1': 'password1', '[email protected]': 'password2'}
cachés tejido utilizado contraseñas en el diccionario env.passwords. Establece este caché utilizando la cadena de hosts completa como clave de ese diccionario y la contraseña como valor. Si configura este diccionario usted mismo antes de ejecutar cualquier tarea, Fabric no los solicitará en absoluto.
gracias por esta respuesta – qre0ct
Para agregar a cualquiera que termine aquí de una búsqueda, puede especificar la opción -I
al ejecutar fab para que le solicite una contraseña predeterminada para usar.De esta manera no será visible en su historial de comandos
ejemplo:
$ fab -I my_task
Initial value for env.password:
yo consideraría muy cuidadosamente antes de adoptar cualquier ** ** estrategia que implicaba el almacenamiento de contraseñas en texto plano - como el medio ambiente vars, guarda en scripts, incluso ingresados en la línea de comando, tanto como odio contradecir una luminaria como AM (Realmente, amigo, me has dado ** gran cantidad de información a lo largo de los años): vive en tu historial de comandos y presenta un riesgo de seguridad. – gomad