2016-06-14 9 views
4

in Jenkins2.0 파이프 라인 대상 시스템에 원격 SSH가 필요합니다. 필자가 이전에 사용한 방법은 "ssh를 사용하여 원격 호스트에서 쉘 스크립트 실행"을 사용하는 것이 었습니다. 사용자 이름과 비밀번호를 모두 지정하고 싶습니다.Jenkins 파이프 라인 : SSHAgent 원격 ssh

나는 끝내 접근 방식은

sshagent(['RemoteCredentials']) { 
    sh 'ssh -o StrictHostKeyChecking=no -l remoteusername remotetarget uname -a' 
    } 

RemoteCredentials 같은 수 갈까요 읽었습니다 : 그것은 암호와 개인 키입니다

사용자 이름/암호 원격 자격 증명을 사용하여 SSH를 만들 수있는 방법이 있나요? sshagent는 당신 말이 맞아, 그래서 불행하게도 사용자 이름/암호 인증

리카르도

+1

이 http://stackoverflow.com/questions/29746313/how-to-download-protected-resources-in-a-jenkins-workflow – izzekil

답변

5

를 지원하지 않습니다.

ssh-agent-plugin은 젠킨스의 자격증 명 관리 영역을 통해 저장된 사용자, 패스 프레이즈, 공개 키 자격 증명 만 지원합니다. See this unit test은 ssh-agent가 공개 키를 기반으로 올바르게 작동하는지 확인합니다. 플러그인에 사용자 + 비밀번호 인증을 지원하는 테스트되지 않은 기능이있을 것 같지 않습니다.

가능한 경우 공개 키 기반 인증으로 전환하십시오. 어떤 이유로 든 전환 할 수없는 경우 ... 은 젠킨스 상자에 sshpass을 설치하지만 일반적으로 나쁜 습관으로 간주됩니다.

node { 
    stage 'Does sshpass work?' 
    sh 'sshpass -p \'password\' ssh [email protected] "ls; hostname; whois google.com;"' 
} 
+1

당신이이 방법을 사용하는 경우에도 사용하는 기억 검사 Jenkinsfile에서 암호를 노출하지 않으려면 적어도 [withCredentials] (https://wiki.jenkins.io/display/JENKINS/Credentials+Binding+Plugin)를 사용하십시오. – dag

관련 문제