![시작 시 systemd 서비스를 통해 Github 저장소에서 최신 변경 사항 가져오기](https://linux55.com/image/173314/%EC%8B%9C%EC%9E%91%20%EC%8B%9C%20systemd%20%EC%84%9C%EB%B9%84%EC%8A%A4%EB%A5%BC%20%ED%86%B5%ED%95%B4%20Github%20%EC%A0%80%EC%9E%A5%EC%86%8C%EC%97%90%EC%84%9C%20%EC%B5%9C%EC%8B%A0%20%EB%B3%80%EA%B2%BD%20%EC%82%AC%ED%95%AD%20%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0.png)
내 장치(Raspberry Pi Zero W)가 부팅되면 이라는 스크립트 실행을 담당하는 systemd 서비스를 시작합니다. start.sh
이 서비스는 차례로 내 main.py
Python 스크립트를 실행합니다.
start.sh
를 실행하기 전에 Github에서 변경 사항을 가져오고 싶습니다 main.py
. 첫 번째 시도는 을 추가하는 것이 git pull
었지만 오류가 발생했습니다.Host key verification failed.
이것이 Github 인증을 위해 SSH 키에 액세스하는 systemd 서비스와 관련이 있다고 가정하지만 필요에 따라 systemd에 SSH를 활성화하는 방법을 모르겠습니다.
어떤 조언이라도 감사드립니다.
답변1
원격 서버의 호스트 키를 수락하라는 메시지가 표시될 수 있습니다. 항목이 있는지 확인하기 위해 먼저 이를 직접 실행할 수 있습니까 known_hosts
? 또한 User
섹션의 콘텐츠 가 [Service]
올바른지 확인하세요.
답변2
나는 내가 이루고 싶은 것을 성취할 수 있는 방법을 찾았습니다.
Github은 다음을 생성하는 기능을 제공합니다.배포 키, 저장소에 대한 읽기 전용 SSH 액세스를 제공합니다.
비밀번호 없이 새 SSH 키를 생성하고 이를 읽기 전용 배포 키로 저장소에 추가했으며 이제 시작 시 systemd 서비스에서 트리거되는 스크립트를 사용하여 저장소에서 변경 사항을 자동으로 가져올 수 있습니다.
암호가 없는 SSH 키는 암호로 보호할 때보다 훨씬 덜 안전하다는 점은 주목할 가치가 있지만 키는 읽기 전용 액세스만 제공하므로 타협할 의향이 있습니다.
답변3
Host key verification failed.
일반적으로 상대방의 서버 ID가 변경되었거나 ~/.ssh/known_hosts
파일에 호스트 키를 추가하지 않았음을 의미합니다.
이 스크립트를 실행하는 사용자와 동일한 저장소에서 데이터를 가져와 보십시오. 또는 를 사용하여 이전 호스트 키를 제거해 볼 수도 있습니다 ssh-keygen -R [hostname/ip]
.
인증을 위해 SSH 키를 사용하는 경우 SSH 키가 ~/.ssh/
이 스크립트를 실행하는 사용자의 폴더에 있는지도 확인하세요.