2014-11-07 3 views
1

저는 Puppet을 사용하고 있으며 특정 사용자와 함께 cronjobs를 통해 Git repos를 가져 오려고합니다. 에이전트가 시작된 규정에 따르면꼭두각시를 통해 ssh-agent를 실행하십시오.

exec { 
    'add-ssh-key': 
    cwd => '/home/user/.ssh', 
    command => "bash -c 'eval $(ssh-agent) ssh-add rsa_key'", 
    path => '/usr/bin:/usr/sbin:/bin:/sbin', 
    provider => 'shell' 
    } 

및 신원는 에이전트에 추가 : 나는이 간부 내 ssh를 에이전트에 추가 내 ~/스푸핑 디렉토리에있는 개인 키를 보유하고 있습니다. 그러나 나는 올바른 ssh-agent (패스워드를 요청할 때)를 연결하지 않았기 때문에 repo (cronjob도 안됨)를 가져올 수 없다.

다른 방법이 있습니까?

감사

답변

2

당신은 git 서버에 연결할 때 키를 사용하도록 지시하기 위해 사용자의 ~/.ssh/config 파일에 섹션을 추가 할 수 있습니다.

Host my-git-server 
    Hostname git.example.net 
    User gituser 
    IdentityFile /home/user/.ssh/rsa_key 

꼭두각시 꼭두각시가 개인 키의 권한이 적절히 제한되어 있는지 확인하십시오.

ssh-agent을 참여시킬 필요가 없습니다.

+0

나는 이미 그렇게했습니다. .ssh /에 동일한 설정 파일을 만들었고 개인 키 권한을 600으로 설정했습니다.하지만 repo를 가져 오려고하면 비밀번호를 물어 봤고 이것을 우회하는 유일한 해결책은 ssh에 키를 추가하는 것입니다 -에이전트. – Pulz

+1

좋아, 어떤 이유로 나는 단지 내 열쇠 "id_rsa"이름을 때 작동합니다. 그러나 당신이 "rsa_key"를 당신의 예제에서 사용했기 때문에 나는 이것이 어떤 주어진 이름과도 잘 맞을 것이라고 추정한다. – Pulz

+0

''ssh '가 사용할 기본 키가'id_rsa'이므로, 여러분의 설정이 사용되지 않고 있다고 가정합니다. 질문에서'rsa_key' 파일 이름을 가져 왔습니다. 파일 이름이라고 가정합니다. -'~/.ssh/id_rsa'에 개인 키를 배포하는 것만이 가장 간단하고 안전한 접근 방법입니다. –

관련 문제