Hay mucho debate sobre esto. Si bien la respuesta de Neil es correcta, el almacenamiento de cualquier credencial en su computadora es inherentemente riesgoso. Incluso si los cifra y los almacena en una ubicación única, el software que ejecute necesita acceso a las claves de cifrado. Si ingresa las claves de cifrado cada vez (o una contraseña para desbloquearlas o similar), puede ser tan fácil ingresar las credenciales.
Este problema no es exclusivo de las contraseñas. Un * x tiende a depender en gran medida de los permisos de archivos (control de acceso) pero no pueden diferenciar un proceso que se ejecuta como usuario de otro. Las claves privadas SSH almacenadas en ~/.ssh
también son un riesgo, por ejemplo.
El principal beneficio de una ubicación estándar para credenciales como .netrc
es mantenerlos separados de los scripts u otros programas que los usan. Por ejemplo, si escribe un script de shell que automatiza una sesión FTP, incrustar el nombre de usuario y la contraseña en el script en lugar de un archivo .netrc
puede hacer que las credenciales se compartan inadvertidamente, ya que el script se almacena en el control de origen o se copia en otros sistemas.
El uso de una ubicación central como .netrc
también permite que las personas tengan sus propias credenciales para acceder a los sistemas. Las cuentas compartidas son mal vistas porque sus actividades no pueden atribuirse a un individuo. De lo contrario, las personas necesitan sus propias copias de los scripts.
El segundo beneficio es tener un solo lugar para actualizar las credenciales modificadas. Si varios scripts o programas usan las mismas pero antiguas credenciales, puede bloquear cuentas. Cambiar el archivo .netrc
puede actualizar varios scripts o programas al mismo tiempo.
Dicho esto, el cifrado de contraseñas en reposo evita el acceso involuntario a las contraseñas, como a través de copias de seguridad, navegación de hombro o similar. Si debe almacenar las credenciales en un sistema, considere algo como un almacén encriptado sobre el archivo de texto plano .netrc
si hay uno disponible. Por ejemplo, git ahora es compatible archivos .netrc
cifrados .