Eu estava procurando por um método para restringir o acesso a um repositório Debian privado e ser capaz de se autenticar de maneira não interativa (ou seja, usando um script)
O artigo mais útil que encontrei se realmente fosse do site de administração da Debian, mas o método seguro usa ssh e chaves públicas / privadas. Ele funciona bem, mas a chave pública de cada host precisa estar dentro do arquivo remote_keys autorizado para autenticar com êxito. Não diz nada sobre o fornecimento de senha para ssh: //, mas suponho que seja possível.
Você já tentou outras alternativas (por exemplo, ftps)?
desde já, obrigado
Respostas:
Se você sempre executa
apt-get
seus servidores manualmente (semapt-get
comandos automáticos iniciados por crons), considere usar o encaminhamento de agente ssh . Isso evita a necessidade de gerenciar um par de chaves pública / privada por servidor que você gerencia, e provavelmente é mais seguro do que deixar chaves privadas em todos os servidores.Configuração inicial - conecte-se aos servidores que você deseja gerenciar e adicione algo assim
/etc/apt/sources.list
(este exemplo assume que você deseja que seus servidores se conectem àmanager
conta):crie um par de chaves públicas / privadas em seu próprio computador, com seu login,
johndoe
por exemplo (desde que seu computador seja executado no debian: caso contrário, você pode fazer isso em um servidor debian dedicado ao gerenciamento):copie sua chave pública para o servidor de repositório em
/home/manager/.ssh/authorized_keys
:Uma vez por sessão de gerenciamento
inicie o agente ssh na sua máquina digitando:
adicione sua chave ao agente (isso exigirá sua senha):
Gerenciando um servidor
conecte-se ao servidor que você deseja gerenciar usando
ssh -A
(-A
ativa o encaminhamento de agente):mude para raiz (se você quiser usar,
sudo
precisará configurar/etc/sudoers
ousudo
interromperá o encaminhamento do agente, leia isto ):agora você deve conseguir se conectar à conta de gerente do repositório usando ssh sem digitar sua senha novamente, graças ao encaminhamento do agente. Portanto,
apt-get
deve funcionar bem:Finalizando sua sessão de gerenciamento
Depois de terminar de gerenciar seus servidores, remova suas chaves do agente:
Vantagens
ssh-ask
para aceitar / recusar todas as tentativas de usar sua chave.fonte
Uma maneira de fazer isso é apenas permitir que um determinado conjunto de IPs acesse o repositório. Isso funciona muito bem para LAN e VPN.
Simples e eficiente.
fonte
A solução + / chaves privadas públicas SSH não é que ruim:
ssh-keygen
, entãossh-copy-id [email protected]
edite
/etc/apt/sources.list
e adicione algo como:Concedido, exige que você coloque a chave pública de cada servidor no
~/.ssh/authorized_keys
arquivo no servidor, mas não é tão complicado (veja acima) e fornece controle sobre os servidores que você permite ou não a qualquer momento (você pode remover uma chave em a qualquer momentoauthorized_keys
).fonte
Você pode configurar um acesso https ao seu repositório, protegido por login / senha (autenticação básica). O problema é que você precisa inserir o logon / senha em texto não criptografado
/etc/apt/sources.list
(nota: existe um patch para permitir que o logon / senha seja inserido/root/.netrc
).fonte
O link na sua pergunta mostra vários métodos. Você deseja o número 2, https + autenticação básica.
fonte