2014-07-10 2 views
18

방황하는 상자를 프로비저닝하는 동안 사적인 git 저장소를 복제하고 싶습니다. this article에 따르면 config.ssh.forward_agent = true을 사용하여 가능해야합니다. ssh -T [email protected] -o StrictHostKeyChecking=no 같은 것을 통해 GitHub의에 연결하려고 할 때 그러나, 다음과 같은 오류와 함께 실패합니다wagrant 게스트에서 호스트의 ssh 개인 키를 사용하십시오.

Warning: Permanently added 'github.com,192.30.252.130' (RSA) to the list of known hosts. Permission denied (publickey).

내가 가장 간단한 구성에 이르기까지 내 구성을 잘라. 당신은 여기에서 찾을 수 있습니다 : 나는 "방랑 SSH"를 수행 할 때 https://gist.github.com/TomTasche/31f7c45fcffc2997d43a

다시 같은 시도, 유사한 오류가 발생합니다

Cloning into 'private-repositories'... Warning: Permanently added the RSA host key for IP address '192.30.252.130' to the list of known hosts. Permission denied (publickey). fatal: The remote end hung up unexpectedly

편집 : 위의 링크 된 구성은 호스트 실행에 대한 작업을 수행 우분투,하지만 맥 호스트 또는 Windows 호스트에서 작동하지 않습니다. 내 목표는이 세 가지 호스트 모두에서 작동하는 구성을 갖는 것입니다.

답변

28

호스트 시스템에 ssh-agent 전달이 활성화되어 있는지 확인하십시오. 당신은 당신의 ~/.ssh/config 파일이 블록을 추가하여 예를 들어 그렇게 할 수 있습니다 :

Host     * 
    ForwardAgent   yes 

를이 게스트 컴퓨터에 키를 전달 할 수 있어야한다 vagrant ssh (도 vagrant provision)를 사용하는 경우.

또한 ssh-add -l을 사용하여 ssh-agent가 SSH 키를 알고 있는지 여부를 확인할 수도 있습니다. 목록에 있고 에이전트 전달이 활성화 된 경우 성공해야합니다. 그렇지 않으면 ssh-add <path to your key file>을 실행하여 ssh-agent에 키를 추가 할 수 있습니다. 당신이 무슨 일을하는지

+3

답변 해 주셔서 감사합니다. 위의 지시를 따른 후에 나는'sag'ssh를 통해 인증 할 수있다. 그러나 프로비저닝 스크립트가 여전히 실패하고 다음 오류가 발생합니다. '인증 소켓에서 응답 길이를 읽는 중 오류가 발생했습니다. 허가가 거부되었습니다. (공개 키) . – TomTasche

+2

며칠 전 우리도 사무실에서 그런 경험을했습니다 ... 실제 행동 없이도 계속해서 일했습니다 ... 설명서에는'config.ssh.forward_agent = true'와 ssh-agent 포워딩은 작동해야하지만 우리는 그것이 작동하지 않는 이유를 발견하지 못했습니다 .../ – Knut

+1

Meh, 모든 종류의 플랫폼에서 작동하지 않으면 컨테이너에 내 dev 환경을 옮기는 개념을 파괴합니다. 어쨌든, 도와 줘서 고마워! 어쩌면 다른 누군가가 해결책을 제시 할 것입니다 ... – TomTasche

2

톰,

자연에서 매우 일반적이며, 내가 생각하지 않는 특정 Vagrant입니다.

문제를 추적하기 위해 다음의 몇 가지를 시도해보십시오

편집이 /etc/ssh/sshd_config
  • 설정 LogLevel debug
  • 다시 시작 SSHD 서비스 sudo service sshd restart 또는 /etc/init.d/sshd restart
  • tail -f /var/log/authlog
    1. - 노트, 파일이 수도 /var/log/authd.log 또는 /var/log/secure 또는 다른 것과 같은 것일 수 있습니다.
    2. 연결하면 어떻게되는지보십시오. 왜 실패했는지 알려줄 것입니다.

    다시 한번 죄송합니다, 나는 Vagrant에 익숙한 아니에요하지만 프로비저닝 스크립트가 예상대로이 경우 에이전트 전달이 작동하지 않을 수 있습니다, 다른 사용자로 실행되고 있는지 궁금하네요? 당신이 특정 버그를 타격 할 수있다처럼

  • +1

    프로비저닝 스크립트는 내가 아는 한 루트로 실행됩니다. 이것은 실제로 내 문제의 원인 인 것 같지만 제안 된 해결 방법은 작동하지 않습니다. https://github.com/mitchellh/vagrant/issues/1303 – TomTasche

    +0

    파일은 우분투 14.04에서 /var/log/auth.log입니다. if 누구나 문제가있다 – kit

    6

    그것은 소리 : 을 방랑에 SSH 포워딩 (기본적으로 제대로 작동하지 않는 Windows에서

    , (이것은에도 불구하고 실제로 고정 아니다 "폐쇄") net-ssh의 버그 때문에).

    그러나 해결 방법이나 간단한 해킹이 있습니다. VagrantFile의 간단한 프로비저닝 스크립트를 통해 로컬 SSH 키를 Vagrant VM에 자동 복사 할 수 있습니다. 예를 들면 다음과 같습니다. https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783

    +1

    나는 너와 @Knut 사이에 현상금을 나누고 싶지만 그의 대답은 내가 맥과 리눅스 모두에서 SSH 에이전트 포워딩을 할 수있게 해준다. 귀하의 답변은 Windows 용입니다! 정말 고마워! – TomTasche

    관련 문제