Bash 스크립트를 통해 뭔가를 하려고 하는데 git clone
처음 스크립트를 실행했는데 서버를 알 수 없으면 스크립트가 실패합니다. 나는 다음과 같은 것을 가지고 있습니다 :
yes | git clone [email protected]:repo/repoo.git
The authenticity of host 'github.com (207.97.227.239)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)?
하지만 이를 무시합니다 . 알려진 호스트에 키를 yes
강제로 추가하는 방법을 알고 있나요 ?git clone
답변1
파일 에 다음을 추가합니다 ~/.ssh/config
.
Host github.com
StrictHostKeyChecking no
원격 셸을 설정하기 위해 open-ssh 클라이언트를 사용하는 모든 작업(git 클라이언트 사용)은 github.com에 대한 키 확인을 건너뛰어야 합니다.
확인을 건너뛰는 모든 형태(자동으로 "예"를 클릭하든 처음에 확인을 건너뛰든)는 중간자에 의한 보안 손상의 여지가 있기 때문에 이는 실제로 나쁜 생각입니다. 더 나은 접근 방식은 known_hosts
자동 연결 스크립트를 실행하기 전에 지문을 검색 및 확인하고 파일에 저장하는 것입니다.
답변2
yes
출력 y
. RSA 키 승인이 필요합니다 yes
. 대신 이렇게 출력해 볼 수 있습니다.yes yes | git clone [email protected]:repo/repoo.git
yes
yes
y
답변3
복제하기 전에 실행하면 ssh-keyscan -H github.com >> ~/.ssh/known_hosts
키가 추가되고 프롬프트가 표시되지 않습니다.
물론 이 접근 방식은 MITM 공격에도 취약합니다.
답변4
나는 전에이 문제를 겪었습니다. Windows 시스템에서는 원격 호스트에 연결하려면 SSH를 사용해야 합니다. 우리도 같은 문제가 있었습니다. 첫 번째 연결은 키를 인식하지 못해서 항상 실패했습니다.
레지스트리 키를 수동으로 연결하고 찾아서 스크립트 시작 부분에서 가져와서 이 문제를 해결했습니다. Linux에서도 일반적인 생각은 동일해야 합니다. 이 서버를 신뢰할 수 있는 호스트 목록에 추가하여 ssh가 신뢰할 수 있는지 매번 묻지 않도록 하려는 것입니다.
수동으로 연결한 후 키 파일을 찾아 Known_hosts 파일에 추가하세요. 이런 방식으로 ssh는 파일을 보고 사용자가 무엇을 하고 있는지 알고 있다고 가정하고 지문을 묻지 않고 계속 진행합니다.