Quando você deseja ter logins ssh baseados em chave pública para várias máquinas, você usa uma chave privada e coloca a mesma chave pública em todas as máquinas? Ou você tem um par de chaves públicas / privadas para cada conexão?
Quando você deseja ter logins ssh baseados em chave pública para várias máquinas, você usa uma chave privada e coloca a mesma chave pública em todas as máquinas? Ou você tem um par de chaves públicas / privadas para cada conexão?
Respostas:
Eu uso uma chave por conjunto de sistemas que compartilham um limite administrativo comum. Isso limita o número de máquinas que são acionadas se uma chave for comprometida, sem sobrecarregar completamente minha capacidade de armazenar e gerenciar milhares de chaves. Senhas diferentes em cada chave significa que, mesmo que todas as suas chaves privadas sejam roubadas e uma delas esteja comprometida, o restante não vai ao banheiro com ela. Além disso, se você fizer algo estúpido (como copiar uma chave privada em uma máquina não confiável), novamente não precisará digitar tudo novamente, apenas as máquinas associadas a essa chave.
A chave pública não importa muito, pois, por definição, pode ser divulgada. Portanto, o único problema é a privacidade de suas chaves privadas. Eles estão em sua própria máquina e todos juntos; portanto, se um estiver comprometido, é provável que todos estejam comprometidos. Portanto, vários pares de chaves são apenas mais trabalho para o mesmo efeito.
A única vez em que eu usaria chaves diferentes é para contas ou funções diferentes, que por definição não devem ter sobreposição completa no acesso.
Se bem entendi, cada servidor terá sua própria chave pública.
Para um determinado usuário , você pode gerar uma chave e usá-la em qualquer lugar, desde que a chave privada seja replicada para todos os hosts iniciantes. (Isso aconteceria automaticamente por meio de diretórios pessoais montados em rede e de um sistema de autenticação baseado em diretório, como o OpenLDAP, já que o usuário sempre será "o mesmo", independentemente da estação de trabalho em que fizer login.)
Fora de um sistema de usuário baseado em diretório, acho que é uma Bad Idea ™ usar as mesmas chaves em todos os lugares - você acaba com uma redução líquida na segurança do sistema, pois qualquer pessoa que possa obter uma chave de qualquer estação de trabalho poderá se autenticar como esse usuário para o servidor remoto.
Outra alternativa, sugerida por várias grandes empresas (e tenho certeza de que também são pequenas) é nunca permitir que um "usuário" use chaves pré-compartilhadas, mas faça login em uma caixa de "salto" ou "hub" , su
ao usuário de conexão apropriado e, em seguida, SSH a partir daí para os servidores que eles precisam gerenciar.
Além disso, se você usar um sistema de gerenciamento como a plataforma Server Automation da HP, a administração remota de servidores gerenciados se tornará um processo mais simplificado.
su
sessão é registrada, no entanto, é auditável.
su
sessões são auditáveis e não as outras?
Como outros já disseram, embora a ideia de vários pares de chaves possa parecer mais segura, se houver uma chance de que eles sejam usados de tal maneira que estejam todos no mesmo lugar, é apenas mais complicado e não mais seguro. Várias senhas a tornariam mais segura, mas também uma grande dor de cabeça ao tentar lembrar qual senha passava com qual chave e qual chave acompanha qual servidor.
A resposta mais razoável para mim seria aquela em que foi sugerido fazer isso SOMENTE se envolver funções administrativas separadas sem muita sobreposição. De modo que possa haver pessoas diferentes lidando com os diferentes papéis, ou em diferentes estações de trabalho ou o que for. Nesse caso, você tem coisas mais exclusivas para lidar com cada função diferente, então é mais justificável.
Para facilitar o gerenciamento de vários servidores compatíveis com SSH, consulte o cssh . Você pode combinar o cssh com as chaves SSH passphrased para aprimorar bastante sua capacidade de gerenciar vários servidores simultaneamente.