A respeito de “Falha na verificação da chave do host”

1

Eu uso o Ubuntu 10.04 em 2 máquinas virtuais. Em uma máquina eu instalei o Hudson e outra máquina é rodar o klocwork. O cenário é quando eu disparo em uma compilação no Hudson, o script precisa ser executado com êxito e chamar o Klocwork na VM2. No script de construção, dei o seguinte comando para chamar o Klocwork na máquina 2.

if [ $Klocwork = "true" ]; then
echo "Starting Klocwork Report ..."
sshpass -p 'password' ssh IP-address "sudo chmod 755 /local path/build_script_kw.sh;/local path/build_script_kw.sh $SVNID $Version"
fi
echo "Build Successfully."

quando executo o script, recebo Host key verification failed error. Por favor, forneça-me uma solução para este problema. Obrigado.

    
por bsreeram031187 27.08.2012 / 07:09

2 respostas

6

Você pode ignorar a verificação rigorosa da verificação da chave do host usando o seguinte comando.

sshpass -p '<your_password>' ssh <your_server_ip> -o StrictHostKeyChecking=no

Observe que o comando acima resolverá seu problema quando a chave não estiver presente no arquivo /root/.ssh/known_host , mas se a chave mais antiga estiver presente, será necessário removê-lo primeiro seguindo o comando

ssh-keygen -R hostname
    
por Not a bug 07.02.2014 / 06:16
1

Na primeira vez que você se conectar a outro sistema, será mostrada uma impressão digital da chave de criptografia do sistema remoto (que, se você estiver se sentindo paranóico, poderá verificar off-line).

No sistema remoto, o comando ssh-keygen -lf /etc/ssh/ssh_host_rsa_key mostrará a impressão digital que deve ser mostrada na primeira vez que você se conectar a ela.

Quando você confirma que esta é a impressão digital esperada, ela é armazenada no arquivo $HOME/.ssh/known_hosts juntamente com o nome do sistema remoto, para que, se você tentar se conectar novamente e encontrar a chave alterada, seja avisado de que sistema remoto foi alterado, ou suas comunicações estão sendo interceptadas (improvável, mas ainda assim ...).

Neste caso, você talvez tenha reinstalado o sistema remoto (para que ele tenha uma nova chave SSH, mas o mesmo nome) e, portanto, você está sendo avisado de que ele foi alterado.

Para corrigir isso, você precisa remover a entrada existente do arquivo known_hosts . Se você não se incomodar de receber uma solicitação para confirmar a identidade de outras máquinas às quais se conecta, basta excluir known_hosts e ele será recriado na próxima vez que você usar o SSH. Como alternativa, você pode usar o comando ssh-keygen para excluir a chave incorreta, fazendo ssh-keygen -R HOSTNAME (onde HOSTNAME é o nome da máquina remota).

    
por chronitis 27.08.2012 / 11:08