Se você sempre executar apt-get
em seus servidores manualmente (sem comandos apt-get
automáticos iniciados pelo crons), poderá considerar o uso do encaminhamento de agente ssh . Isso evita ter que gerenciar um par de chaves público / privado 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 a /etc/apt/sources.list
(este exemplo assume que você deseja que seus servidores se conectem à conta manager
):
deb ssh://[email protected]/path other stuff
-
crie um par de chaves privadas / públicas no seu próprio computador, com seu login
johndoe
por exemplo (desde que seu computador seja executado no debian: se não, você pode fazer isso de um servidor debian dedicado ao gerenciamento):ssh-keygen
- verifique se ele está protegido por uma frase-chave strong
-
copie sua chave pública para o servidor de repositório em
/home/manager/.ssh/authorized_keys
:ssh-copy-id [email protected]
Uma vez por sessão de gerenciamento
-
inicie o agente ssh em sua máquina digitando:
eval 'ssh-agent'
-
adicione sua chave ao agente (isso exigirá sua frase secreta):
ssh-add
Gerenciando um servidor
-
conecte-se ao servidor que você deseja gerenciar usando
ssh -A
(-A
ativa o encaminhamento de agentes):ssh -A some.server.org
-
alterne para a raiz (se você quiser usar
sudo
, precisará configurar/etc/sudoers
ou senãosudo
interromperá o encaminhamento do agente, leia isto ):su
-
agora você deve conseguir se conectar à conta de administrador do repositório usando o ssh sem digitar sua senha novamente, graças ao encaminhamento do agente. Portanto,
apt-get
deve funcionar bem:apt-get udate
Encerrando sua sessão de gerenciamento
-
Quando terminar de gerenciar seus servidores, remova as chaves do agente:
ssh-add -D
Vantagens
- Não é necessária muita configuração inicial
- Apenas uma chave privada é necessária
- A chave privada é protegida por uma senha strong
- Se alguém obtiver acesso root a um de seu servidor, ele não terá acesso imediato ao seu servidor de repositório.
- Observe que, se o hacker for paciente e qualificado, ele poderá esperar até você se conectar ao servidor usando o encaminhamento de agente e poderá seqüestrar o mecanismo de encaminhamento para obter acesso ao seu servidor de repositório.
- Para ajudar a evitar isso, você pode usar
ssh-ask
para aceitar / recusar todas as tentativas de usar sua chave. - Em qualquer caso, o hacker não obterá acesso à própria chave privada: ele só poderá seqüestrar o mecanismo de encaminhamento para usar a chave, e somente durante o tempo que você está conectado ao servidor.