Várias chaves públicas para um usuário

47

Esta questão é semelhante a Autenticação de chave pública SSH - uma chave pública pode ser usada para vários usuários? , mas é o contrário.

Estou experimentando usar o ssh para que qualquer servidor ssh funcione para suas respostas.

Posso ter vários links de chaves públicas para o mesmo usuário? Quais são os benefícios disso? Além disso, diferentes diretórios de usuário podem ser definidos para diferentes chaves usadas (todas com o mesmo usuário)?

Por favor, deixe-me saber se não estou claro.

Obrigado.

    
por Russell 12.01.2011 / 22:19

2 respostas

72

Você pode ter quantas chaves desejar. É uma boa prática usar conjuntos de chaves privadas / públicas separadas para diferentes regiões, como um conjunto para seu uso pessoal, um para o seu trabalho, etc.

Primeiro, gere dois keypairs separados, um para casa e outro para o trabalho:

ssh-keygen -t rsa -f ~/.ssh/id_rsa.home
ssh-keygen -t rsa -f ~/.ssh/id_rsa.work

Em seguida, adicione uma entrada ao seu arquivo ~/.ssh/config para escolher a chave a ser usada com base no servidor ao qual você se conecta:

Host home
Hostname home.example.com
IdentityFile ~/.ssh/id_rsa.home
User <your home acct>

Host work
Hostname work.example.com
IdentityFile ~/.ssh/id_rsa.work
User <your work acct>

Em seguida, acrescente o conteúdo de seu id_rsa.work.pub em ~/.ssh/authorized_keys na máquina de trabalho e faça o mesmo com a tecla de início em sua máquina doméstica.

Então, quando você se conecta ao servidor doméstico, usa uma das chaves e o servidor de trabalho usa outra.

Observe que você provavelmente deseja adicionar as duas chaves ao seu ssh-agent , para não precisar digitar sua frase-senha o tempo todo.

    
por 12.01.2011 / 22:37
4

Faz muito sentido ter as chaves de vários usuários indo para um usuário. Motivos comuns são:

  • backup
  • git (por exemplo, Push URL: git+ssh://git@git-server/~/repos/MyProject )
  • rsync
  • acesso comum a um aplicativo

No que diz respeito a diferentes homedirs, você pode alterá-los por chave, adicionando environment="HOME=/home/user1" para a chave do user1 no arquivo authorized_keys. Veja man authorized_keys .

Experimente, YMMV.

    
por 12.01.2011 / 22:29