Diz ao ssh para experimentar todos os arquivos chave em ~ / .ssh /

3

Eu tenho várias chaves no meu diretório ~ / .ssh /, cada uma com um nome de projeto separado, para projetos que possuem vários servidores cada. id_rsa_project1, id_rsa_project2

No entanto, o ssh não irá procurá-los. Se eu executar ssh -v user@projectserver , recebo a saída da seguinte forma:

...
debug1: Connection established.
...
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/me/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/me/.ssh/id_dsa
debug1: Trying private key: /home/me/.ssh/id_ecdsa
debug1: Trying private key: /home/me/.ssh/id_ed25519
debug1: Next authentication method: keyboard-interactive
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Next authentication method: password
user@projectserver password: 

Isso parece ser por design, pois a página ssh_config diz que, por padrão, as identidades procuradas são ~ / .ssh / id_dsa , ~ / .ssh / id_ecdsa , ~ / .ssh / id_ed25519 e ~ / .ssh / id_rsa .

Claro que posso:

  • adicione a opção -i ~/.ssh/id_rsa_project1 à linha de comando a cada vez ou
  • adicione IdentityFile ~ / .ssh / id_rsa_project1 a uma especificação contra o servidor em ~ / .ssh / config , ou
  • adicione IdentityFile ~ / .ssh / id_rsa_project1 para / etc / ssh / ssh_config para cada projeto.

... mas tudo isso parece complicado demais para a regularidade com a qual trocamos chaves e arquivos de chave.

Eu tentei adicionar IdentityFile ~ / .ssh / * para / etc / ssh / ssh_config , mas parece que é um literal * em vez de um curinga .

Como posso dizer ao ssh para ler e testar todos os arquivos de chave em ~ / .ssh /?

    
por tudor 16.03.2016 / 02:05

1 resposta

4

A maneira mais fácil é adicioná-los a ssh-agent :

Iniciar agente:

eval 'ssh-agent'

Adicione todas as chaves em ~/.ssh :

ssh-add ~/.ssh/id_rsa_*

Mas note que não é a maneira ideal, já que todas as chaves são tentadas em todos os servidores onde você quer se conectar. A configuração adequada em ~/.ssh/config é uma solução recomendada.

    
por 16.03.2016 / 14:48