Bash 스크립트에서 예라고 답하세요

Bash 스크립트에서 예라고 답하세요

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.gityesyesy

답변3

복제하기 전에 실행하면 ssh-keyscan -H github.com >> ~/.ssh/known_hosts키가 추가되고 프롬프트가 표시되지 않습니다.

물론 이 접근 방식은 MITM 공격에도 취약합니다.

답변4

나는 전에이 문제를 겪었습니다. Windows 시스템에서는 원격 호스트에 연결하려면 SSH를 사용해야 합니다. 우리도 같은 문제가 있었습니다. 첫 번째 연결은 키를 인식하지 못해서 항상 실패했습니다.

레지스트리 키를 수동으로 연결하고 찾아서 스크립트 시작 부분에서 가져와서 이 문제를 해결했습니다. Linux에서도 일반적인 생각은 동일해야 합니다. 이 서버를 신뢰할 수 있는 호스트 목록에 추가하여 ssh가 신뢰할 수 있는지 매번 묻지 않도록 하려는 것입니다.

수동으로 연결한 후 키 파일을 찾아 Known_hosts 파일에 추가하세요. 이런 방식으로 ssh는 파일을 보고 사용자가 무엇을 하고 있는지 알고 있다고 가정하고 지문을 묻지 않고 계속 진행합니다.

관련 정보