OS/공통-명령어

[Tips] ssh로 해당 호스트 최초 접속시 fingerprint 관련 이슈 해결- known_host 파일

투칼론 2019. 8. 25. 11:13
반응형

특정 호스트에 최초로 SSH  접속 시에 아래와 같이 RSA key fingerprint로 접속여부(yes/no)를 확인하는 차원에서 물어본다. 쉘 프로그래밍 을 통해 자동으로 SSH 명령어로 자동화를 구현하고자 할때, 제약사항이 될 수 있다.

$ ssh 192.100.x.x

The authenticity of host '192.100.x.x' can't be established. RSA key fingerprint is 3f:f1:a4:bd:e3:54:63:xx:xx:xx:xx:xx:xx:xx:xx:xx. Are you sure you want to continue connecting (yes/no)?

위의 ...(yes/no)? 프롬프트에서 yes를 입력하면, 해당 계정의 패스워드를 입력 후에, 호스트에 접속할 수 있다.

접속하고 나면, ~/.ssh/known_hosts 파일에 해당 RSA key정보가 등록되어, 다음 접속 부터는 물어보지 않는다.

 

Ansible이나, 쉘 프로그래밍으로 여러 대의 호스트에 접속하기 위해서는 해당 프롬프트에 번거롭기 때문에 해당 프롬프트를 출력하지 않기 전에는 사전에 ~/.ssh/known_hosts 파일에 등록해두면 된다.

 

1. 하나의 호스트를 등록하는 방법

$ ssh-keyscan  -t rsa  hostname >> ~/.ssh/known_hosts

위의 명령어에서 ">>" 기호는 해당 파일에 정보를 추가한다는 의미이다. ">"를 대신 사용하면, 기존 등록된 정보가 삭제되고 새로 추가됨에 주의해야 한다.

 

 

2. 여러 개의 호스트를 등록하는 방법

$ ssh-keyscan  -t rsa  -f  호스트명들을 나열한 파일명 >> ~/.ssh/known_hosts