Adicionando public is_rsa.pub aknown_hosts automaticamente - como fazer?

Adicionando public is_rsa.pub aknown_hosts automaticamente - como fazer?

Como adicionar automaticamente o servidor aknown_hosts? (e não use impressão digital md5, como quero dizer de forma segura, por favor, não envie soluções "sim/aceitar automaticamente". Quero trazer as credenciais necessárias do servidor para a máquina)

Gostaria de atualizar automaticamente meu known_hostsarquivo ssh para aceitar o novo servidor.

Presumo que preciso adicionar a chave pública do servidor ( id_rsa.pubobtida através de canal seguro), mas o que vejo é que o formato é diferente (tentei adicionar assim awk '{print "server "$1" "$2}' id_rsa.pub > .ssh/known_hostscom falha na verificação. Observe que não quero usar md5 impressão digital devido a falhas no md5). Se algo diferente id_rsa.pubfor útil, posso executar comandos no servidor e obter resultados por meio de um canal confiável. (Observe que não é um canal de rede (pense em trazer fisicamente o pendrive de um lugar para outro), então ssh-keyscannão resolve o problema, além do mais id_rsa.pub é a chave do servidor dropbear que não está rodando no servidor, então apenas arquivos com chaves estão disponíveis, não no servidor)

Responder1

O nome id_rsa.pubse parece com a chave pública de um usuário. Isso não tem nada a ver com known_hosts- known_hostsarmazena chaves de host. As chaves de host, como o nome indica, autenticam um host (ou seja, um computador), enquanto as chaves de usuário autenticam um usuário. As chaves públicas do host do OpenSSH normalmente estão localizadas em /etcou /etc/sshe são chamadas de algo como ssh_host_rsa_key.pub.

Dropbear possui um único arquivo contendo a chave privada. Para extrair a chave pública (em um formato compatível entre Dropbear e OpenSSH), execute

dropbearkey -f /etc/dropbear/dropbear_rsa_host_key -y | sed -n 2p >host_key.pub

Não acho que o OpenSSH venha com um comando para atualizar o known_hostsarquivo. É bastante fácil de fazer manualmente:

echo "$server_name,$server_ip_address $(cat server_ssh_host_rsa_key.pub)" >>~/.ssh/known_hosts

Se você quiser fazer hash de nomes de host (para que alguém que leia seu known_hostsarquivo não possa saber os nomes desses servidores - é um ganho de privacidade muito pequeno), execute ssh-keygen -Hdepois.

informação relacionada