1
resposta

Host key verification failed. Como solucionar?

Boa tarde. Estou com o seguinte erro na exeção da Action ao tentar se conectar a instância EC2:

Pseudo-terminal will not be allocated because stdin is not a terminal. Host key verification failed. Error: Process completed with exit code 255.

Alguém poderia me ajudar?

No momento meu arquivo .yaml está assim:

name: deploy-saleapp-on-AWS-EC2

on: push: branches: - main pull_request: branches: - main

jobs: deploy: runs-on: ubuntu-latest steps: - name: Deploy na instancia EC2 env: PRIVATE_KEY: ${{ secrets.AWS_EC2_PRIVATE_KEY }} # Chave SSH USER: ubuntu # Usuário SSH na instância EC2 HOST: 44.215.252.109 run: | echo "$PRIVATE_KEY" > ApplicationServerKeyPair.pem chmod 600 ApplicationServerKeyPair.pem ssh -i ApplicationServerKeyPair.pem $USER@$HOST echo "user $USER connected to $HOST by ssh"

1 resposta

Olá, Márcio!

O erro "Host key verification failed" geralmente ocorre quando a chave do host remoto não está na lista de hosts conhecidos no sistema que está tentando se conectar. Isso é uma medida de segurança para garantir que você está realmente se conectando ao servidor esperado e não a um servidor malicioso.

Para resolver esse problema, você pode adicionar a chave do host ao arquivo known_hosts da máquina onde o GitHub Actions está sendo executado. Aqui está um exemplo de como você pode modificar seu arquivo .yaml para incluir essa etapa:

name: deploy-saleapp-on-AWS-EC2

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Adicionar host ao known_hosts
        run: |
          ssh-keyscan -H ${{ secrets.AWS_EC2_HOST }} >> ~/.ssh/known_hosts

      - name: Deploy na instancia EC2
        env:
          PRIVATE_KEY: ${{ secrets.AWS_EC2_PRIVATE_KEY }} # Chave SSH
          USER: ubuntu # Usuário SSH na instância EC2
          HOST: 44.215.252.109
        run: |
          echo "$PRIVATE_KEY" > ApplicationServerKeyPair.pem
          chmod 600 ApplicationServerKeyPair.pem
          ssh -i ApplicationServerKeyPair.pem $USER@$HOST
          echo "user $USER connected to $HOST by ssh"

No exemplo acima, ssh-keyscan é usado para obter a chave do host e adicioná-la ao arquivo known_hosts, o que deve resolver o problema de verificação da chave do host.

Espero ter ajudado e bons estudos!