2016-07-04 6 views
0

Capistrano (v3.5.0)를 사용하여 로컬 개발 컴퓨터에서 Bitbucket에 설정된 배포 키를 사용하여 Linode에서 호스팅되는 VPS로 작은 Rails 응용 프로그램을 배포합니다. 지난 주말처럼, 그것은 매력처럼 일하고있었습니다.배포 도중 Capistrano가 내 Bitbucket Git 저장소에서 갑자기 읽을 수없는 이유는 무엇입니까?

DEBUG [6906a62c]  conq: repository access denied. 
DEBUG [6906a62c]  fatal: The remote end hung up unexpectedly 
:

DEBUG [6906a62c] Command: (export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.2.1" 
    GIT_ASKPASS="/bin/echo" GIT_SSH="/tmp/app/git-ssh.sh" ; /usr/bin/env git 
    ls-remote --heads [email protected]:klenwell/app.git) 

이 오류입니다 : 내가 평소 cap deploy 명령을 실행할 때

그러나 오늘날, 그것은 내의 Bitbucket Git 저장소에서 읽으려고 할 때 세 번째 단계에서 실패

나는 분명한 문제 해결을 수행했다. 오류 메시지를 검색하고, VPS가 작동하며, 저장소에 액세스 할 수 있는지 확인하고, SSH 키를 두 번 확인하고, SSH 에이전트가 실행 중인지 확인했다. 다른 모든 방법이 실패하면 VPS 호스트에서 새 키를 생성 해 봅니다. 특히

이 점은 내가 어리둥절 있습니다

가 있었다
  • (지금까지의 내가 말할 수있는)이 지난 성공적으로 실행하기 때문에 아니오 카피 스트라 노의 변경 또는 VPS 구성. 지난 주 카피 스트라 노 기록에서 같은 명령이 성공적으로 실행되는 것을 봅니다.
  • 배포 사용자로 내 VPS 서버에 ssh를 설치하면 ssh -T [email protected]과 같은 정확한 git 명령을 문제없이 수동으로 실행할 수 있습니다.
  • 로컬 컴퓨터의 Jenkins 서버가 해당 배포 키를 사용하여 동일한 Bitbucket 리포지토리에서 성공적으로 읽을 수 있습니다.

나는 무엇을 놓치고?

+0

카피 스트라 노는 SSH 에이전트 포워딩을 사용

당신은 카피 스트라 노의 SSH 에이전트 포워딩이 같은 (이에 힘내 배포 키를 서버에 설치 한을 사용할 수 있도록) 비활성화 할 수 있습니다. 사실 이것은 BitBucket으로 인증하기 위해 * 로컬 * SSH 키를 사용한다는 것을 의미합니다. 로컬 키가 변경되었거나 더 이상 BitBucket에 액세스 할 수 있습니까? –

+0

@MattBrictson 당신은 그것을 못 박았습니다. 내 로컬 시스템에 여러 Bitbucket 사용자가 있고 기본 배포가 배치 사이에 재설정 된 것 같습니다. 어쨌든,이 줄은 내'deploy.rb' 파일에'set : ssh_options, {forward_agent : false}'에 추가하는 것이었다. 답변을 귀하의 의견을 변환하고 그것을 선택하겠습니다. 감사! – klenwell

답변

1

기본적으로 Capistrano는 SSH 에이전트 전달을 사용합니다. 사실 이것은 BitBucket을 사용하여 인증을 위해 로컬 SSH 키를 사용한다는 것을 의미합니다.

아마도 로컬 키가 변경되었거나 더 이상 BitBucket 액세스가 없으므로 배포가 더 이상 작동하지 않는 이유를 설명 할 수 있습니다.

set :ssh_options, { forward_agent: false }