Como eu instalo as chaves do known_host para o ssh manualmente?

2

Eu tenho um sistema de transmissão seguro onde estou empurrando chaves de host para um banco de dados e estou tentando instalar chaves geradas em um máquinas Ubuntu 15 e instalá-las em uma máquina SLES 11 e estou tentando instalar chaves geradas em uma máquina Centos 7 naquela máquina Ubuntu 15.

Então, existe um mecanismo comum para cada uma dessas máquinas instalar chaves de host, isso está ficando muito confuso e eu estou pensando que estou sendo um pouco escrupuloso. Tudo é para ser automatizado e eu descobri um método decente para coletar as chaves, eu simplesmente não sei onde o lugar certo para colocá-las na máquina

Aqui está uma chave na máquina centos:

[root@centos ~]# cat /etc/ssh/ssh_host_ecdsa_key.pub ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIl8BT33T4sEAgG56CItPWep/N3IKaUaw8Xy6Fn6k9SLsARi9zZk9FAd6H6DfbIxzkz1sjSjfq1JSVyd3slKf4M=

e aqui está o que parece quando eu importo (via ssh aceitando-o manualmente) no meu knownhosts na minha máquina ubuntu

root@ubuntu:/home# cat aaron/.ssh/known_hosts |1|F+Hr+T8eulEpFFFhwdJKdcOg6yQ=|yM/XLEkDPFUWO/g9vPOONBkRvtE= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIl8BT33T4sEAgG56CItPWep/N3IKaUaw8Xy6Fn6k9SLsARi9zZk9FAd6H6DfbIxzkz1sjSjfq1JSVyd3slKf4M=

Então, parece que a primeira parte está no arquivo known_hosts é algo criptografado e nas máquinas SLES, essa parte não é criptografada, então é um pouco mais simples.

Então minhas perguntas são

  1. Como faço para criar essa parte criptografada para que eu possa fazer eco no arquivo known_hosts?
  2. Como sei se um determinado sistema linux espera que o primeiro hunk seja criptografado?
por Peter Turner 25.03.2016 / 17:55

1 resposta

4

A página de manual para sshd descreve o formato do arquivo:

SSH_KNOWN_HOSTS FILE FORMAT

The /etc/ssh/ssh_known_hosts and ~/.ssh/known_hosts files contain host public keys for all known hosts. The global file should be prepared by the administrator (optional), and the per-user file is maintained automatically: whenever the user connects from an unknown host, its key is added to the per-user file.

Each line in these files contains the following fields: markers (optional), hostnames, bits, exponent, modulus, comment. The fields are separated by spaces.

[...]

Alternately, hostnames may be stored in a hashed form which hides host names and addresses should the file's contents be disclosed. Hashed hostnames start with a ‘|’ character. Only one hashed hostname may appear on a single line and none of the above negation or wildcard operators may be applied.

Exceto que a parte bits, exponent, modulus agora é usada em conjunto como chave pública. O nome do host está com hash, mas você pode escrevê-lo como uma string e, em seguida, executar ssh-keygen sobre o arquivo:

ssh-keygen -H [-f known_hosts_file]

por exemplo, ssh-keygen -H -f ~/.ssh/known_hosts

    
por 25.03.2016 / 18:10

Tags