2013-11-27 4 views
1

Atlassian Stash의 호스팅 된 인스턴스에 자식 저장소가 있습니다. 그 다음에는 최신 버전의 소프트웨어 시스템을 배포하는 olympus, zeus 및 hera의 세 가지 시스템이 있습니다. 이것을 자동화하기 위해 olympus에서 sshgit pull을 사용하려고하는 다른 컴퓨터에 원격으로 배포하고 싶지만 Permission denied (publickey).으로 실패합니다. 기본적으로 내가 할 얻을 :Permission denied (publickey)에서 ssh 결과를 사용하여 원격 Git을 당깁니다.

[email protected]:~$ ssh [email protected] 'cd ~/my/project/release/deploy/location/; git pull' 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

을 나는 다음과 같은 한 :

  • 모든 기계는 (은 LDAP 등을 설치하는 시간이 없었어요) 다른 azg 사용자를 가지고 내가 가지고 azg @ 올림푸스, azg @zeus와 azg @ hera. 각 사용자마다 ssh id_rsa 키 쌍을 생성했습니다.
  • 내가
  • 숨김 azg 사용자마다 azg 사용자에 대한 모든 id_rsa.pub의 복사본으로 구성되는 등의 대응 id_rsa.pub 각 azg 사용자 authorized_keys를 채운 (azg @ 올림푸스 azg @ 제우스 azg @hera) 그래서 매번 암호를 입력 할 필요없이 ssh를 통해 모든 컴퓨터에서 복제하거나 잡아 당길 수 있습니다.

    [email protected]:~/code$ git clone ssh://[email protected]:7999/pm/pm.git 
    Cloning into 'pm'...   
    remote: Counting objects: 555, done. 
    remote: Compressing objects: 100% (271/271), done. 
    remote: Total 555 (delta 203), reused 555 (delta 203) 
    Receiving objects: 100% (555/555), 9.54 MiB, done. 
    Resolving deltas: 100% (203/203), done. 
    

을 나는 개별적으로 각 시스템에서 같은 작업을 수행 할 수 있습니다 그러므로 나는 아무 문제도 할 수 없다. 그러나 원격으로 먼저 로그인하면 암호를 입력 할 수 없습니다. '/home/azg/.ssh/id_rsa'키를 입력 할 때마다 암호를 묻습니다.

[email protected]:~$ ssh [email protected] 
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.5.0-43-generic x86_64) 

* Documentation: https://help.ubuntu.com/ 

Last login: Wed Nov 27 17:01:33 2013 from olympus 
[email protected]:~$ cdc 
[email protected]:~/code$ git clone ssh://[email protected]:7999/pm/pm.git 
Cloning into 'pm'... 
Enter passphrase for key '/home/azg/.ssh/id_rsa': <<<<<<<<<<< WHY??? 
remote: Counting objects: 555, done. 
remote: Compressing objects: 100% (271/271), done. 
remote: Total 555 (delta 203), reused 555 (delta 203) 
Receiving objects: 100% (555/555), 9.54 MiB | 145 KiB/s, done. 
Resolving deltas: 100% (203/203), done. 

답변

2

패스워드로 제우스에 RSA 키 쌍을 만든 것처럼 들립니다. (이것은 계정 암호와 다르며 키 파일 자체를 암호 해독하는 암호입니다.) ssh-keygen에서 암호 구를 묻는 경우 키 쌍을 다시 생성하고 아무 것도 입력하지 마십시오.

또한 일부 보안 전문가는 실습을 싫어할 수도 있지만 키를 하나만 만들고 키 쌍을 만들어 모든 컴퓨터에서 사용하는 것이 좋습니다. 그런 다음 authorized_keys 파일은 한 줄만 있으면되고 모든 호스트에서 동일 할 수 있습니다.

:: 편집 : OP 댓글에서 지적 하듯이 당신의 OS가 (내가 사용하지 않도록 권장합니다) ssh-agent 당신을 saddling 주장하는 경우, 당신은 중지 ssh-agent를 얻기 위해 모든 시스템에서 ssh-add를 실행해야합니다 경고 발행.

+0

passphrase-less ssh 키 쌍을 하나만 생성하고 모든 시스템에서 사용해야한다는 점을 올바르게 알고 있습니까? pub 파일에서 호스트 이름, 즉 azg @ zeus가 어떤 역할을합니까? –

+1

예, 그게 내가 할일입니다. 아니, 공개 키 파일 안의 줄 끝 부분에 놓이는'user @ host'는 단지 주석입니다. 그것은 완전히 부적절합니다. 나는 대개'dg99 @ global'으로 대체합니다. 이것은 여전히 ​​의미가 없지만 개인적으로 제가 여러 곳에서이 키 쌍을 사용하고 있음을 상기시켜줍니다. – dg99

+0

Allrighty 덕분에 작동합니다! 단지 당신의 답을 따르는 완성을 위해 나는'에이전트가 열쇠를 사용하여 서명하지 못함을 인정했다. '라는 오류로 끝날 것이며 이것은 모든 기계에서'ssh-add'를 실행하는 것으로 고정됩니다! 답변을 업데이트하십시오. 동의하겠습니다. –