Estaba buscando un método para restringir el acceso a un repositorio privado de Debian y poder autenticarlo de manera no interactiva (es decir, usando un script)
El artículo más útil que encontré si realmente es uno del sitio de administración de Debian pero el método seguro usa ssh y claves públicas / privadas. Funciona muy bien, pero la clave pública de cada host debe estar dentro del archivo remote_keys remoto para autenticarse con éxito. No dice nada acerca de proporcionar una contraseña para ssh: // pero supongo que debería ser posible.
¿Has probado otras alternativas (por ejemplo, ftps)?
Gracias por adelantado
Respuestas:
Si siempre ejecuta
apt-get
en sus servidores a mano (no hayapt-get
comandos automáticos iniciados por crons), entonces podría considerar usar el reenvío de agente ssh . Esto evita tener que administrar un par de claves públicas / privadas por servidor que administre, y probablemente sea más seguro que dejar las claves privadas en cada servidor.Configuración inicial : conéctese a los servidores que desea administrar y agregue algo como esto
/etc/apt/sources.list
(en este ejemplo se supone que desea que sus servidores se conecten a lamanager
cuenta):cree un par de claves privadas / públicas en su propia computadora, con su inicio
johndoe
de sesión, por ejemplo (siempre que su computadora se ejecute en debian: si no, puede hacerlo desde un servidor debian dedicado a la administración):copie su clave pública al servidor del repositorio en
/home/manager/.ssh/authorized_keys
:Una vez por sesión de gestión
inicie el agente ssh en su máquina escribiendo:
agregue su clave al agente (esto requerirá su frase de contraseña):
Administrar un servidor
conéctese al servidor que desea administrar usando
ssh -A
(-A
activa el reenvío de agente):cambie a root (si desea usarlo
sudo
necesita configurarlo/etc/sudoers
o de lo contrariosudo
interrumpirá el reenvío del agente, lea esto ):ahora debería poder conectarse a la cuenta de administrador del repositorio utilizando ssh sin volver a escribir su contraseña, gracias al reenvío de agente. Por lo tanto,
apt-get
debería funcionar bien:Finalizando su sesión de gestión
Una vez que haya terminado de administrar sus servidores, elimine sus claves del agente:
Ventajas
ssh-ask
para aceptar / rechazar cualquier intento de usar su clave.fuente
Una forma de hacerlo es simplemente permitir que un determinado conjunto de IP acceda al repositorio. Esto funciona muy bien para LAN y VPN.
Simple y eficiente.
fuente
La solución + claves públicas / privadas ssh no es que malo:
ssh-keygen
, entoncesssh-copy-id [email protected]
editar
/etc/apt/sources.list
y agregar algo como:De acuerdo, requiere que coloque la clave pública de cada servidor en el
~/.ssh/authorized_keys
archivo en el servidor, pero no es tan complicado (ver arriba) y le da control sobre qué servidores permite o no en un momento dado (puede eliminar una clave en en cualquier momentoauthorized_keys
)fuente
Puede configurar un acceso https a su repositorio, asegurado por usuario / contraseña (autenticación básica). El problema es que necesita ingresar el nombre de usuario / contraseña de texto sin formato
/etc/apt/sources.list
(nota: hay un parche para permitir que se ingrese el nombre de usuario / contraseña/root/.netrc
).fuente
El enlace en su pregunta muestra varios métodos. Desea el número 2, https + autenticación básica.
fuente