Como adicionar o host conhecido do SSH em um script bash?

13

Estou criando um script bash para provisionar um novo servidor para o qual posso implantar um aplicativo da web. Uma coisa que eu sempre tenho que fazer é como o GitHub como um host conhecido usando ssh [email protected] . Como posso automatizar este processo em um script bash, e fazê-lo de uma maneira idempotente?

    
por Andrew 05.12.2013 / 02:07

3 respostas

18

O caminho simples a percorrer seria fazer algo assim.

ssh-keyscan remote_server >>~/.ssh/known_hosts

Se esta caixa for nova, talvez seja necessário criar o diretório ~/.ssh antes de executar ssh-keyscan .

Tenha em mente que ssh-keyscan pode pegar um número arbitrário de nomes de host. Ele terá todas as chaves que puder.

    
por 05.12.2013 / 06:29
4

Você está tentando automatizar a aceitação da nova chave? Em caso afirmativo, você poderia usar -oStrictHostKeyChecking = no.
Fazer isso é uma ideia muito ruim, pois agora você está completamente aberto a ataques man-in-the-middle.

Uma opção melhor seria apenas gerenciar um arquivo known_hosts e reutilizá-lo quando você provisionar novos servidores. Cole-o no github e escreva um script simples para baixar esse arquivo antes de conectar ao github.

A verificação estrita da chave do host é uma coisa boa.

    
por 05.12.2013 / 02:18
1

Não tenho certeza se entendi a pergunta, mas acho que você deseja ignorar o prompt known_host ou evitá-lo totalmente, e nesse caso:

ssh -o StrictHostKeyChecking = não

ou outras sugestões em: link

    
por 05.12.2013 / 02:17

Tags