svn
자동화된 스크립트에서 내 https 사용자 이름+비밀번호를 ~/.subversion에 저장하려고 합니다 . 명령줄에서 자격 증명을 전달할 수 있지만 암호를 암호화되지 않은 상태로 저장하라는 메시지가 표시되고 싶지 않습니다. 불행하게도 이것은 ~/.subversion/을 생성하지 않습니다:
svn --non-interactive --trust-server-cert --username myusername --password secret co https://private.example.com/src/repo/
bower install
참고로 저는 비밀번호 bower.json
로 보호된 svn 저장소 에 대한 참조를 호출하는 Dockerfile에 대해 이 작업을 수행하려고 합니다 . 불행하게도 bower
명령줄이나 환경을 통해 svn 자격 증명을 전달할 수 있는 방법은 없습니다 .
저는 현재 svn을 대화형으로 실행하고 ~/.subversion을 생성한 다음 전체 디렉터리를 압축하여 ADD
Dockerfile에 저장하여 이 문제를 해결하고 있습니다. ~/.subversion의 파일 형식을 보고 스크립트를 사용하여 생성할 수 있지만 오히려 svn이 수행하도록 놔둘 것 같습니다.
답변1
--username
사용하거나 --password
사용하지 않으면 --non-interactive
자격 증명이 저장됩니다 --trust-server-cert
.
나는 당신이 인증서를 수락하라는 메시지를 사용 --non-interactive
하고 피하고 있다고 가정합니다. --trust-server-cert
이러한 매개변수 없이 이 메시지를 표시하지 않으려면 스크립트를 ~/.subversion/auth/svn.ssl.server
. 현재 스크립트에 이 솔루션을 사용하고 있습니다.
답변2
분명히 --non-interactive
사용자 이름은 저장되었지만 비밀번호는 저장되지 않았습니다. 다음 위치에서 비밀번호 저장을 활성화했습니다 ~/.subversion/servers
.
store-passwords = yes
store-plaintext-passwords = yes
store-auth-creds = yes
살펴보면 svn help
관련 명령이나 옵션이 하나도 없어 보입니다. 나는 이것이 불가능하다고 생각한다. SVN 개발자에게 버그 보고서를 확인하고 제출하도록 요청해야 합니다.
아래 파일 형식은 auth
사용자가 직접 스크립트를 작성하려는 형식이 아닙니다. 게다가 인증기록의 파일명이 해시인 것으로 보입니다. 이것은 스크립트 친화적이지 않습니다. 비밀번호 목록을 하드코딩하기 위한 특수 파일 형식이나 명령줄에서 이를 제어하는 방법이 필요합니다.
이것이 내가 아래에서 보는 것입니다 ~/.subversion/auth/svn.simple/
:
파일 이름 935...dc9e
(32자).
콘텐츠:
K 8
passtype
V 6
simple
K 8
password
V 8
p@$$w0rd
K 15
svn:realmstring
V 48
<https://svn.someplace.com:443> VisualSVN Server
K 8
username
V 5
johny
답변3
보안 이 문제가 되지 않는 격리된 환경에서 이 문제가 발생했으며 svn ls
(linux) 명령의 도움으로 올바른 자격 증명을 사용하여 저장소에서 간단히 실행하여 해결했습니다 yes
. ~/.subversion
작동합니다. 구체적으로:
rm -fr ~/.subversion yes yes | svn --username=user --password=guest ls svn://server/repo &>/dev/null
다음의 모든 svn 명령은 이 서버에서 이러한 자격 증명을 사용합니다. 물론 이는 해당 옵션을 사용하여 yes yes
모든 --password
svn 명령에 파이프될 수 있습니다.
즐기다!