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 /?