sshpass는 비밀번호를 문자 "&"로 구분된 두 개의 문자열로 분할합니다.

sshpass는 비밀번호를 문자 "&"로 구분된 두 개의 문자열로 분할합니다.

값이 abc123&zxcv456인 비밀번호 변수 PASS가 있습니다. 아래와 같은 비밀번호 변수를 사용하여 젠킨스에서 SSH를 수행하려고 하면

sshpass -p ${PASS} ssh -o StrictHostKeyChecking=no [email protected] 'echo '${PASS}' | sudo -S docker stats --no-stream'

특수 문자 & 앞의 문자열만 해석되고 PASS 변수의 값이 abc123으로 읽혀집니다. 이 문제를 해결하는 데 도움이 될까요?

추신: 이스케이프 문자 "${PASS}"를 사용해 보았으나 아무 소용이 없습니다.

답변1

Jenkins Pipeline에서 내장된 자격 증명 저장소를 사용하고sshAgent단계SSH 사용자 이름/비밀번호를 ssh 명령에 전달합니다.

Freestyle 작업에 대한 작업 구성 GUI에도 비슷한 옵션이 있습니다.

답변2

비밀번호를 다음과 같이 정의하십시오.

abc123\&zxcv456

관련 정보