ssh key questions

2

Eu tenho algumas perguntas sobre como gerar chaves para o acesso ssh:

(1) Suponha que haja dois computadores executando o serviço do servidor ssh e eu tenha gerado um par de arquivos chave no computador A e copiado o arquivo público para o computador B. É verdade que esta é apenas uma chave unidirecional: só deu ao computador uma permissão para acessar o computador B, não deu permissão ao computador B para acessar o computador A? Se eu quiser agora ssh do computador B para o computador A, devo gerar outro par de arquivos de chave no computador B e copiar o arquivo público para o computador A?

(2) Se eu gostaria de conectar um único computador local a vários servidores remotos, é para gerar um par comum de arquivos de chave apenas uma vez no local e copiar o mesmo arquivo público para os servidores remotos, ou gerar diferente par de arquivos chave no local para diferentes servidores remotos?

(3) Se eu gostaria de conectar vários computadores locais a um único servidor remoto, ao copiar os arquivos públicos de diferentes computadores locais para o servidor remoto, é possível combiná-los em um único arquivo authorized_keys ou armazená-los em diferentes arquivos authorized_keys?

(4) Se houver vários servidores compartilhando o mesmo sistema de arquivos, por exemplo, NFS, como gerar chaves e organizar os arquivos de chave para acessar de um servidor para outro? Também como ainda gerar chaves e organizar os arquivos de chaves para um computador local acessar qualquer um dos servidores?

Todas as máquinas acima são Linux.Por favor, forneça exemplos e comandos em sua resposta para que eu possa entender melhor como resolver os problemas.

Obrigado e cumprimentos!

    
por Tim 26.02.2010 / 02:06

3 respostas

3
  1. Sim, este é o caso. A máquina com a metade privada da chave pode autenticar contra aqueles com a metade pública. É claro que você pode ter a mesma chave privada em duas ou mais máquinas, mas se você não tiver uma frase secreta na chave, você não deve fazer isso para servidores nos quais você não confia 100%, como um servidor externo compartilhado. , chaves passphraseless não são recomendadas de qualquer maneira).

  2. É comum usar a mesma chave pública em muitos servidores, como se estivesse usando chaves públicas + privadas para assinar e-mails (todos geralmente usam a mesma chave pública para verificar assinaturas de sua chave privada) - o não acima sobre não desistir. Por exemplo, minha chave para mim @ homemachine pode me logar em meu servidor doméstico, meu servidor remoto e várias VMs. Eu tenho um differet pait de chaves para mim @ homeserver embora (por causa da nota 1 acima), mas que também pode ser usado para me autenticar com uma seleção de contas em outro lugar. Dito isso, não há nada que impeça que você tenha muitas chaves privadas para cada conta de usuário que você tiver, se desejar.

  3. Todas as chaves autorizadas para uma determinada conta de destino existem em um arquivo authorized_keys.

  4. Isso depende. O seu diretório pessoal ou, na verdade, tudo, está no recurso compartilhado (NFS)?

link é um recurso que surgiu após uma pesquisa rápida ao responder uma pergunta relacionada anteriormente, e parece relevante aqui também, embora possa não cobrir o seu último ponto. Os comandos de amostra serão relevantes para o Linux, supondo que você esteja usando o OpenSSH (o que você provavelmente não é).

    
por 26.02.2010 / 03:04
3

(1) Supposed there are two computers running ssh server service and I have generated a pair of key files on computer A and copy the public file to computer B. Is it true that this is only a one-way key: We only gave computer A permission to access computer B, not gave computer B permission to access computer A?

Sim.

If I now want to ssh from computer B to computer A, must I generat another pair of key files on computer B and copy the public file to computer A?

Sim (embora você possa usar os mesmos arquivos de chave acima, se A e B confiarem um no outro)

(2) If I would like to connect a single local computer to several remote servers, is it to generate a common pair of key files only once on the local and copy the same public file to the remote servers, or to generate different pair of key files on the local for different remote servers?

Enquanto ambos funcionarão, não há razão para usar mais de um arquivo-chave; então sua segunda opção.

(3)

Sim, você combina todas as chaves em um arquivo authorized_keys.

(4) If there are several servers shared the same file system by, for example, NFS, how to generate keys and arrange the key files for accessing from one server to the other? Also how to still generate keys and arrange the key files for a local computer to access anyone of the servers?

O NFS não importa para o SSH; os arquivos devem estar nos locais certos. O mesmo para gerar chaves.

    
por 26.02.2010 / 03:11
2
  1. Um par de chaves gerado a partir de um computador 'A 'pode ser usado para fazer login em vários outros computadores.
    No entanto, você pode copiar o par de chaves do diretório A '.ssh' para outro computador 'B' e usá-lo também (para fazer login em todos os computadores que você permitiu o acesso de ' A' ' com essas credenciais ).
    Isso torna o acesso menos seguro, já que você compartilhou os dados privados em dois computadores. Mas, pode funcionar se isso não é um passivo.
  2. Como descrevi acima, um único par de chaves em 'A' pode ser usado para acessar tantas máquinas remotas quantas forem necessárias, autorizando o acesso com a chave pública em cada uma delas.
  3. O arquivo 'authorized_keys' pode ter várias linhas de autorização (chaves públicas), uma por linha.
  4. Quando você compartilha 'home' de espaço em vários computadores (e o diretório '.ssh' em si é, portanto, compartilhado entre eles enquanto faz login), é necessário apenas um par de chaves para compartilhar o acesso a esse pool de computadores. Coloque a chave pública no arquivo authorized_keys deste '.ssh '.

Algumas referências,

  1. Autenticação de chave pública do OpenSSH
  2. SSH sem uma senha
  3. Identidades do usuário do SSH (SecurityFocus)

Atualização:

  • Esta página de ajuda da Universidade de Cambridge tem um exemplo de listagem de authorized_keys.
  • Acho que os arquivos diferentes foram usados para armazenar diferentes tipos de teclas.
    Como o arquivo 'authorized_keys 'seria para chaves RSA e
    o arquivo 'authorized_keys2 'para chaves DSA, talvez.
    Existe um artigo do SecurityFocus que descreve esses arquivos junto com outras coisas.
por 26.02.2010 / 03:09

Tags