Lidando com SCP dentro de um grupo de servidores com chaves diferentes

Lidando com SCP dentro de um grupo de servidores com chaves diferentes

Estou trabalhando com um grupo de servidores em uma VPN com Ubuntu 18.04, e para cada servidor tenho um arquivo de chave diferente. No entanto, quando tento copiar arquivos com segurança (como propagar com segurança a chave munge entre servidores), sou negado porque não tenho uma chave apropriada (pelo menos acho que esse é o motivo, ele retorna "Permissão negada (chave pública)." ).

Manter minhas chaves privadas em cada servidor é provavelmente uma má prática? Copiar arquivos para minha máquina local e depois copiá-los para um servidor diferente é uma dor, e também não tenho certeza se isso é seguro.

Como isso é tratado adequadamente? Posso usar um usuário em cada servidor (como munge) para copiar entre eles, se não para qualquer local, então para algumas pastas designadas que posso mais tarde sudo cp? Existe uma opção que não é uma vulnerabilidade?

Responder1

A autenticação baseada em chave com ssh (scp é uma ramificação do ssh) é uma questão de criptografia de chave pública. Você pessoalmente tem uma chave privada que mantém em segredo e distribui sua chave pública para todos.

Portanto, para responder à sua pergunta, você NÃO deve e não precisa de várias chaves privadas, uma será suficiente. Então você carrega suas chaves públicas em TODOS os servidores. Você deve manter um backup de sua chave privada em algum lugar seguro e criptografado com uma senha.

Em segundo lugar, é contra a filosofia da criptografia de chave pública armazenar as suas chaves privadas nos servidores que você está acessando; você não está mantendo a chave privada em segredo. Sua chave privada deve estar sã e salva com você e mantida em segredo de todos; somente você deve ter a chave privada e mais ninguém.

Também é uma boa prática usar o mesmo nome de usuário e chave pública em todos os servidores.

Portanto, mantenha sua chave privada única segura com você e distribua a chave pública para todos os servidores que você deseja acessar. Agora você pode usar a mesma chave privada para fazer login em todos os seus servidores!

Responder2

Se você precisar trocar dados entre servidores, você pode consultar scp -3 server1:path1 server2:path2. Ele irá transferir os dados e usar seu host como intermediário (sem conexão direta entre os servidores).

Você também pode configurar seu .ssh/configarquivo com IdentityFileopções definidas para cada bloco de servidor:

Host server1
  IdentityFile ~/.ssh/file1
Host server2
  IdentityFile ~/.ssh/file2

informação relacionada