배경
엔터프라이즈 작업 예약에 사용되는 Jenkins 서버가 있습니다. 다음 쉘 스크립트를 실행하는 작업이 있습니다
#!/bin/bash -xe
ssh -o ServerAliveInterval=10 insidetk@albrl1 "Rscript /home/insidetk/PRIORITIZATION/Analytics_Modal.R"
보시다시피 ssh 명령은 IdentityFile을 지정하지 않습니다. 그래서 Known_host 파일에 저장된 키를 사용해야 한다고 추론했습니다.
스크립트를 실행하는 상자에서 $HOME/.ssh/known_host
및 파일 /etc/ssh/ssh_known_hosts
에 키가 있는 것을 볼 수 있습니다. 그러나 이러한 파일에는 말 그대로 수천 개의 다양한 작업에서 가져온 수천 개의 키가 있습니다.
노력하다
위 파일에서 사용자를 검색하려고 합니다.내부 지식, 상자의 IP 주소, 상자의 호스트 이름 등을 검색하여 이 파일에서 키를 찾으려고 합니다. 그러나 이러한 문자열은 이러한 파일에 나타나지 않습니다.
SSH 로그를 어디에서나 찾을 수 없고 Journalctl이 설치되어 있지 않습니다.
질문
이 ssh 명령에서 사용되는 키를 어떻게 식별할 수 있습니까?
답변1
ssh
다음을 대화형으로 실행하여 자세한 출력을 활성화할 수 있습니다 .
ssh -v insidetk@albrl1
그러면 다음과 같은 선을 발견할 수 있을 것입니다.
debug1: Offering public key: /home/<user>/.ssh/id_rsa RSA SHA256:<key's fingerprint>
debug1: Server accepts key: /home/<user>/.ssh/id_rsa RSA SHA256:<key's fingerprint>