Posso ter várias chaves ssh na minha pasta .ssh?

30

Posso criar várias chaves ssh e renomeá-las para nomes amigáveis, para que eu saiba qual chave é para qual site etc.

Isso é seguro?

por exemplo:

github_id_rsa
github_id_rsa.pub
..
...

Como saberá qual chave verificar quando conectar?

Agora, no meu computador, quando olho para known_hosts, todos parecem ter a mesma chave após o nome do host?

user27449
fonte
Além disso, as chaves conhecidas do host definitivamente não são as mesmas, basta olhar para o final das linhas de cada host.
slhck 23/05

Respostas:

15

Sim, você pode ter diferentes chaves ssh. Há uma documentação muito boa no site de Ajuda do GitHub em Help.GitHub - Várias chaves SSH . Essencialmente, você usará o ssh-add para adicionar as chaves extras para que o agente possa utilizá-las. Em seguida, você configura a configuração dos hosts ssh para que todas as conexões ssh com domínios diferentes sejam pesquisadas aqui e a chave apropriada seja usada. boa sorte!

ArtemT
fonte
1
O link não funciona mais
danwellman
44

Você pode modificar o arquivo ~ / .ssh / config para usar um arquivo de identidade diferente para diferentes servidores. Edite o ~ / .ssh / config no seu editor favorito e adicione uma entrada que seja apropriada para sua situação, da seguinte maneira:

Host *
IdentityFile ~/.ssh/id_rsa

Host *.github.*
IdentityFile ~/.ssh/github_id.rsa

Host *.someother.com
IdentityFile ~/.ssh/someother_id.rsa

A primeira parte acima define os padrões para todos os hosts e as outras seções substituem o que deve ser usado para cada um dos hosts que correspondem aos padrões. Se você tiver um nome de usuário diferente para cada um dos hosts, poderá adicionar uma chave Usuário seguida pelo nome de usuário no controle remoto à seção.

joehep
fonte
3
Esta é a resposta mais útil para esta pergunta, independentemente do destino, seja no GitHub ou em outros sites.
Pierre
Isso não funciona se você tiver várias contas de bitbucket e precisar, infelizmente, de chaves diferentes para cada uma.
John Little
chmod 400 ~/.ssh/id_rsaou chmod 400 ~/.ssh/foo_id.rsapode ser necessário.
T.Woody
@JohnLittle Dê uma olhada na minha resposta que resolve a conta multiusuário para o mesmo domínio.
Sathishkumar Rakkiasamy 20/08
4

Você pode configurar várias chaves ssh para qualquer site com várias contas de usuário

Abaixo está o exemplo que eu costumava seguir no meu desenvolvimento para o GitHub.com

Exemplo de arquivo de configuração

#Personal account
 Host github.com-<personal-account-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_personal
 IdentitiesOnly yes



#Organization account
 Host github.com-<organization-name>
 HostName github.com
 User git
 IdentityFile ~/.ssh/id_rsa_work
 IdentitiesOnly yes

No momento de adicionar uma nova origem

Para conta pessoal

git remote add origin [email protected]<personal-account-name>:<personal-account-name>/<repo-name>.git

Para conta da organização

git remote add origin [email protected]<organization-name>:<organization-name>/<repo-name>.git

Espero que ajude.

Sathishkumar Rakkiasamy
fonte