2014-06-05 3 views
2

내 VPS에서 linux 명령 줄에서 git pull을 성공적으로 실행할 수 있지만 nodejs에서 execfile로 "git pull"을 포함하는 bash 파일을 실행하면 오류가 발생합니다 : Command failed: Host key verification failed. 이 문제를 해결할 수 있습니까?nodejs에서 git 명령을 실행할 수 없습니다

업데이트 : 내가 얻을 전체 오류 메시지는 다음과 같습니다

{ [Error: Command failed: Host key verification failed. fatal: Could not read 
from remote repository. Please make sure you have the correct access rights 
and the repository exists. ] killed: false, code: 1, signal: null } 

제공하는 질문 dylants과 같은 문제가 아니에요 것 같다. 나는 암호가 때마다 메시지 방지하기 위해 내 VPS에 SSH 프로토콜 대신 HTTPS 프로토콜을 사용하고

git pull && pm2 reload www 

:

배쉬 파일 스크립트가이처럼, 내 nodejs 응용 프로그램을 배포 자동차에 사용 내 bitbucket 저장소에서 당겨. 그래서 ssh 키는 ~/.ssh/내 사용자 디렉토리에 생성되었습니다. nodejs가 bash 파일을 실행하지 못한 이유는 다음과 같습니다. nodejs 어플리케이션에서 bash 파일을 실행하는 사용자는 명령 행에서 bash 파일을 실행하는 사용자와 다릅니다. 따라서 nodejs를 실행하는 사용자는 ~/.ssh에있는 ssh 키를 검증에 사용할 수 없습니다. 그게 맞습니까? 그것을 고치는 방법?

+0

더 이상의 오류가 있습니까? 이것은 관련이있을 수 있습니다 : http://stackoverflow.com/questions/21087695/not-able-to-git-pull-host-key-verification-failed – dylants

+0

Pls 질문에 추가 bash file script. – bedna

답변

3

문제를 올바르게 확인했다고 생각합니다. nodejs 응용 프로그램이 ssh 자격 증명에 액세스 할 수 없습니다. 읽기 전용 익명에 사용할 수있는 저장소를 만들 수 있다면

  • 액세스를 HTTP를 통해 : 당신은 몇 가지 가능한 옵션이 // 또는 자식 : // 프로토콜, 당신은 nodejs 변경 사항을 당겨 할 수 있습니다 모든 종류의 필요없이 자격증 명.

  • nodejs 사용자 용 ssh 키를 생성하고 해당 사용자에게 저장소에 대한 읽기 전용 권한을 부여 할 수 있습니다. 해당 사용자의 적절한 위치에 ssh 키 쌍을 생성하면됩니다.

  • nodejs 앱이 nodejs 앱에서 사용할 수있는 곳에서 자격 증명을 삭제할 수 있지만 보안 문제가 많습니다. 웹 앱이 손상된 경우 공격자가 저장소에 변경 사항을 기록 할 수 있습니다 너에게서. 따라서이 옵션을 사용하지 마십시오.

+0

문제가 해결되었습니다. 내 nodejs 애플 리케이션은 루트 사용자에 의해 실행되고, 나는 그것을위한 배포 키 (https://confluence.atlassian.com/display/BITBUCKET/Use+deployment+keys)를 생성했다. 이제는 모든 것이 괜찮다. 고마워. – treblam

관련 문제