본문 바로가기
Dev/DevOps

SSH known_host

by 수목원 2024. 10. 9.

원격에서 실행하는 스크립트를 작성하고 있는데 SSH기반이다.
(참고로 다른 플젝에서 사용하는 Ansible 역시 SSH)

 

SSH로 다른 HOST에 접근하기 위해서는 접속하려는 서버의 FingerPrint를 등록하는 과정이 필요한데

접속할 건지 물어보는 프롬프트 때문에 스크립트 중간에 멈춰버리거니 입력을 받지 못하는 경우가 발생한다.

SSH known_host

 

한번 Fingerorint를 등록해 놓으면 상관없지만 좀 더 알아보니

~/.ssh/known_hosts라는 파일에 등록되기에 보안상 문제없이 접속하게 하는 방법이 필요하다

이때 사용하는게 ssh-keyscan으로 원격 호스트의 SSH키를 수집하여 등록할 수 있다.

ssh-ketscan -p {PORT} -t rsa {IP} 1> ~/.ssh/known_hosts 2>/dev/null && \

(스캔한 Fingerprint값은 known_hosts에 저장하고 에러는 무시한다)

 

  • -t rsa 호스트키의 유형을 지정, RSA타입으로 키를 스캔 ED25519, ECDSA 등이 있음
  • 1> : stdout(표준출력)을 리다이렉션 하여 스캔한 결과를 저장
  • 2> : stderr(표준오류출력)를 /dev/null로 리다이렉션, 오류메세지는 무시
  • && \: &&앞 명령어가 성공적으로 실행되었을 경우 다음 명령을 실행 다음줄로 넘어감

'Dev > DevOps' 카테고리의 다른 글

Nginx 성능 최적화  (4) 2025.07.13
[책리뷰] 테라폼으로 시작하는 IaC  (3) 2024.10.27
[docker] AMP환경 구축하기  (2) 2024.01.22
Docker이용 MongoDB 설치  (1) 2022.04.04
[Docker] 도커 포트추가  (0) 2021.08.31