Entrada SSH known_hosts para número de porta e encapsulamento usando @ cert-authority

2

Configurei a autoridade de certificação SSH em meu servidor, incluindo uma chave de host assinada com os principais aplicáveis. Eu configurei meu arquivo known_hosts local para reconhecer a autoridade de certificação e quando eu ssh diretamente no host ele funciona bem. No entanto, eu também configurei um túnel reverso no host para o SSH nele através de uma VM que eu configurei. Não consigo descobrir como fazer com que meu cliente SSH o reconheça como um host conhecido, apesar de uma string apropriada na chave do host assinado. Como faço para assinar a chave do host ou configurar a entrada known_hosts para reconhecer o host durante o tunelamento através de terceiros?

Esta é a linha apropriada do known_hosts :

do meu cliente
@cert-authority *.DOMAIN.us ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDRd5kjlix8PN1SsQ...

Este é o ssh-keygen -L da chave do host:

pi@ca51-1:~ $ ssh-keygen -L -f /etc/ssh/ssh_host_ecdsa_key-cert.pub 
/etc/ssh/ssh_host_ecdsa_key-cert.pub:
        Type: [email protected] host certificate
        Public key: ECDSA-CERT SHA256:at+6J0W9S0BZj96YeJqtUCAAksUFu8P840ZCkVm9fb0
        Signing CA: RSA SHA256:AYPOCzb67UvUUIoULa3BgstmX1XIDP9+4bClTycMC9g
        Key ID: "ca51-1.in"
        Serial: 9
        Valid: forever
        Principals: 
                ca51-1.local
                ca51-1.in.DOMAIN.us
                [tunnel.in.DOMAIN.us]:10030
        Critical Options: (none)
        Extensions: (none)

Quando tento conectar-me ao servidor localmente ( ssh [email protected] ), conecto sem problemas. (Acabei de perceber que *.local não está no meu arquivo known_hosts , apesar de estar funcionando.)

Observe que eu tenho o endereço do túnel: port como principal ( [tunnel.in.DOMAIN.us]:10030 ).

Quando tento ssh no servidor através desse túnel, recebo um erro:

ssh -p 10030 [email protected]
key_cert_check_authority: invalid certificate
Certificate invalid: name is not a listed principal
The authenticity of host '[tunnel.in.awosome.us]:10030 ([138.68.10.xxx]:10030)' can't be established.
ECDSA key fingerprint is SHA256:at+6J0W9S0BZj96YeJqtUCAAksUFu8P840ZCkVm9fb0.

Aqui estão mais algumas depurações de -v :

debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host certificate: [email protected] SHA256:at+6J0W9S0BZj96YeJqtUCAAksUFu8P840ZCkVm9fb0, serial 9 ID "ca51-1.in" CA ssh-rsa SHA256:AYPOCzb67UvUUIoULa3BgstmX1XIDP9+4bClTycMC9g valid forever
debug1: checking without port identifier
debug1: Host 'tunnel.in.awosome.us' is known and matches the ECDSA-CERT host certificate.
debug1: Found CA key in /Users/jshannon/.ssh/known_hosts:31
key_cert_check_authority: invalid certificate
Certificate invalid: name is not a listed principal

Para confirmar que eu não cometi um erro com known_hosts , copiei a chave na linha 31 ( ssh-rsa .... ), colei em uma arquivo temporário e, em seguida, executei ssh-keygen -l :

ssh-keygen -l -f temp_keys/key.pub 
2048 SHA256:AYPOCzb67UvUUIoULa3BgstmX1XIDP9+4bClTycMC9g AWOS (RSA)

Pensei que talvez o formato do host em principals estivesse incorreto, mas se eu aceitar o host desconhecido, recebo a chave adicionada a known_hosts :

[tunnel.in.DOMAIN.us]:10030,[138.68.10.xxx]:10030 ecdsa-sha2-nistp256 AAAAE2VjZHNhLX

A primeira entrada corresponde à entrada nos principais, até o formato e o número da porta.

Eu tentei várias iterações de principals entradas sem sucesso. Idealmente, eu gostaria de ter uma entrada principals que bloqueia o host para um FQDN ( tunnel.in.DOMAIN ) e porta, mas eu estaria OK qualquer porta nessa máquina. Eu também tentei alguns asteriscos lá.

    
por James S 30.05.2018 / 23:58

0 respostas