[unix] bash 스크립트에서 예라고 대답하십시오.

나는 git clonebash 스크립트를 통해하려고 하지만 스크립트를 처음 실행했을 때 서버를 알지 못했지만 스크립트는 실패합니다. 나는 이와 같은 것을 가지고있다 :

yes | git clone git@github.com: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알려진 호스트에 키를 강제 로 추가하는 방법을 알고 있습니까?



답변

~/.ssh/config파일에 다음을 추가 하십시오.

Host github.com
    StrictHostKeyChecking no

git 클라이언트와 함께 open-ssh 클라이언트를 사용하여 원격 쉘을 설정하면 github.com에 대한 키 검사를 건너 뛰어야합니다.

수표를 건너 뛰는 형태 (자동으로 예를 누르거나 처음부터 수표를 건너 뛰든)는 중간 보안 문제로 인해 사람을위한 공간이 만들어지기 때문에 이것은 실제로 나쁜 생각입니다. 더 좋은 방법은 known_hosts자동으로 연결되는 스크립트를 실행하기 전에 지문을 검색하고 확인하여 파일에 저장하는 것입니다 .


답변

yes출력 y. RSA 키 승인 요구 사항 yes. 당신은 시도 할 수 yes yes | git clone git@github.com:repo/repoo.git있도록 yes출력하는 yes대신 y.


답변

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

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


답변

나는 전에이 문제에 부딪쳤다. 비록 Windows 시스템에 있었지만 ssh를 사용하여 원격 호스트에 연결해야했습니다. 우리는 첫 번째 연결이 키를 인식하지 못하기 때문에 항상 실패한 것과 동일한 문제를 겪었습니다.

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

수동으로 연결하면 키 파일을 찾아 known_hosts 파일에 추가하십시오. 이 방법으로 ssh는 해당 파일을 살펴보고, 지문에 대해 묻지 않고 진행중인 작업을 알고 진행한다고 가정합니다.


답변