gerando entrada de host conhecida

2

Gostaria de criar uma entrada known_host mas, por algum motivo de segurança (permissão), não é possível adicioná-la diretamente quando solicitada a adição.

Tem a certeza de que pretende continuar a ligar (sim / não) - > não posso dizer sim

Perguntando se existe uma maneira de gerar a entrada (imprimir na linha de comando), para que eu possa colocá-lo manualmente no arquivo known_hosts. Eu tenho a impressão digital da chave RSA.

Para parafrasear a pergunta, posso especificar meu próprio arquivo de entrada do known_host para gerar a entrada acima?

Apenas fyi: - Eu também tenho acesso ao comando ssh-keygen, ssh-keyscan e outros não estão disponíveis. Por favor, comente se a informação acima é insuficiente e eu posso responder

    
por Shanky 23.04.2012 / 22:37

2 respostas

4

Você pode usar a opção -o em seu comando ssh para especificar manualmente um arquivo de host alternativo:

$ ssh -o UserKnownHostsFile=~/known_hosts.txt myserver

Isso colocará o conteúdo em known_hosts.txt em seu diretório pessoal ou você poderá alterá-lo para qualquer lugar em que tenha permissões de gravação.

    
por 24.04.2012 / 00:59
2

Se você usar isso:

ssh -o StrictHostKeyChecking=no server.example.net

você pode evitar completamente a questão, mas , ao fazer isso, você está evitando uma verificação importante que o SSH usa para verificar a identidade do host remoto. Você mencionou que tem a impressão digital da RSA. Verifique quando usar esta opção.

Você perguntou como poderia "gerar" a entrada que adicionaria ao seu arquivo known_hosts. Eu suponho que você esteja usando o OpenSSH.

Em cada um dos servidores aos quais você está se conectando, você precisará descobrir onde as chaves SSH do host remoto residem. No Linux e no FreeBSD, tudo deve estar em /etc/ssh/ . No OSX, a configuração do SSH, incluindo as teclas, está bem em /etc/ . Se não tiver certeza, você poderá encontrar as chaves com:

find /etc/ -name ssh_host\*.pub -print

Provavelmente, você terá resultados como este:

/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_rsa_key.pub

O conteúdo desses arquivos nos servidores remotos pode ser adicionado textualmente ao arquivo known_hosts usado pelo seu cliente ssh. E, obviamente, se você normalmente usa apenas um tipo de chave, provavelmente não precisa do conteúdo de ambos os arquivos.

A outra pergunta que você fez foi se era possível especificar um arquivo alternativo known_hosts. A outra resposta a essa pergunta fornece instruções para você.

Observe que você também pode especificar um arquivo alternativo known_hosts usando uma entrada no arquivo ~/.ssh/config . Por exemplo:

host cloudhost*
    UserKnownHostsFile ~/.ssh/known_hosts_cloud

Isso pode funcionar se você coletar todas as chaves do host no arquivo nomeado e tiver nomes de host como cloudhost1, cloudhost2, ....

    
por 24.04.2012 / 01:09

Tags