docker python3에서 .py 스크립트를 실행시켰을 때, 이런 오류가 발생하였다.
이유를 알아보니, SSH로 다른 호스트를 접근하려면, 처음에, 해당 호스트의 FingerPrint를 등록할것인지를 물어보는데, 이로 인해서 스크립트를 처음 실행할때, 이 물어보는 프롬프트 때문에, 스크립트가 중간에 멈추거나 또는 입력을 받지 못해서 대상 호스트로 접속이 안될 수 있다
한번 Finger Print를 등록해놓으면, 다음부터는 물어보지 않기 때문에 문제는 없지만, 이를 해결하기 위해서는 처음에도 물어보지 않도록 미리 등록을 해놓아야 한다.
Finger Print를 등록하는 프롬프트에서 등록을 하게 되면, 해당 호스트는 ~/.ssh/known_hosts 라는 파일에 등록이 된다.
미리 등록하는 방법에는
1. 해당 host port의 모든 공개 키를 읽는다.
ssh-keyscan -p [포트번호] [host명]
2. 해당 host port의 모든 rsa공개 키를 읽는다.
ssh-keyscan -t rsa -p [포트번호] [host명]
3. .ssh디렉토리의 known_hosts 파일에 해당 host의 port를 추가한다.
.ssh디렉토리가 없다면 mkdir로 생성해줌! (mkdir ~/.ssh)
ssh-keyscan -H -p [포트번호] [host명] >> ~/.ssh/known_hosts
참고자료
https://ciksiti.com/ko/chapters/31-how-to-use-ssh-keyscan-on-ubuntu--linux-hint
https://linuxhint.com/ssh-keyscan-ubuntu/
'DevOps | Server' 카테고리의 다른 글
API 이해하기 (feat. Open API, REST API) (0) | 2021.10.28 |
---|---|
SSH(Secure Shell) (0) | 2021.09.30 |