본문 바로가기

리눅스

[draft] Ansible SSH Fingerprint 접속 오류를 해결하는 방법

Ansible SSH Fingerprint(Host Key) 접속 오류를 해결하는 방법

ansible.cfg 파일에서 fingerprint 옵션을 False로 설정하여 Ansible에서 SSH 지문 검사를 비활성화할 수 있습니다. 이를 통해 Ansible은 SSH 연결 시 서버의 호스트 키를 검사하지 않습니다.

 

Ansible 실행 중 다음과 같은 오류가 발생하는 경우

fatal: [node2]: UNREACHABLE! => {
  "changed": false,
  "msg": "Failed to connect to the host via ssh: Host key verification failed.",
  "unreachable": true
}

Ansible fingerprint 접속 오류는 Ansible이 SSH 연결 시 호스트 키를 검증할 때 발생할 수 있는 오류입니다.

이 오류는 호스트 키가 변경되었거나 호스트 키를 신뢰하지 않는 경우에 발생할 수 있습니다.

해결 방법

SSH Host Key 검증 비활성화 (가장 간단, 자동화 환경용)

1. ansible.cfg 파일을 엽니다.

2. [defaults] 섹션을 찾거나 추가합니다.

3. host_key_checking = False 또는 ssh_args = -o StrictHostKeyChecking=no를 ansible.cfg 파일에 추가합니다.

  • host_key_checking 옵션은 Ansible 2.0 이전 버전에서 사용할 수 있습니다.
  • ssh_args 옵션은 Ansible 2.0 이후 버전에서 사용할 수 있습니다.

ansible.cfg 설정

[defaults]
host_key_checking = False

(또는) SSH 옵션을 직접 지정

[ssh_connection]
ssh_args = -o StrictHostKeyChecking=no

4. 파일을 저장하고 닫습니다.

자동으로 known_hosts 등록 (초기 구축 시 유용)

ansible-playbook site.yml --ask-known-hosts

Ansible이 호스트 키를 처음 접하는 경우에는 호스트 키를 수동으로 검증하고 저장해야 합니다. 이를 위해 ansible-playbook 명령을 실행할 때 --ask-known-hosts 옵션을 추가하여 호스트 키를 검증하고 저장할 수 있습니다.

known_hosts 초기화 (권장, 보안 유지)

기존에 저장된 잘못된 호스트 키를 삭제합니다.

ssh-keygen -R node2

또는 IP 주소 사용 시

ssh-keygen -R 192.168.1.20

이후 Ansible 재실행

ansible all -m ping

수동으로 호스트 키 등록 (가장 안전)

SSH로 한 번 직접 접속하여 호스트 키를 신뢰 목록에 추가합니다.

ssh node2
Are you sure you want to continue connecting (yes/no)?

yes 입력 후 Ansible 재실행

 

위의 방법 중 적합한 조치를 취하여 호스트 키 관련 접속 오류를 해결할 수 있습니다.