답변:
SVN 버전에 따라 다릅니다. 최근 (1.6+)에는 평소 --non-interactive
(프롬프트를 피하기 위해 사용하려고 함)가 있으며 --trust-server-cert
원하는 것을 수행 할 수도 있습니다.
를 사용 --trust-server-cert
하면 SSL 인증서가 영구적으로 수락되지 않습니다. 명령 줄을 통해 입력 리디렉션 을 사용하고를 사용하지 않고 SSL 인증서를 영구적으로 승인 할 수 있습니다 --non-interactive
.
유닉스 / 리눅스의 예는 다음과 같습니다.
svn list [TARGET] << EOF
p
EOF
참고 : 위의 "p"는 영구적으로 (p)입니다.
1.6.6 (r40053)
불행히도 내 버전 ( )은 p
(영구적으로) 옵션을 전혀 제공하지 않습니다 . 그리고 이것은 더 이상 업데이트 할 수없는 고대 상자에 있기 때문에 ...
내 솔루션은 expect를 사용합니다. 안전하지는 않지만 다른 솔루션이 효과가 없을 때 작동합니다.
#!/usr/bin/expect -f
set svn_username [lindex $argv 0]
set svn_password [lindex $argv 1]
set svn_url [lindex $argv 2]
spawn svn --username=${svn_username} --password=${svn_password} list ${svn_url}
expect "(R)eject, accept (t)emporarily or accept (p)ermanently? "
send -- "p\r"
expect "Store password unencrypted (yes/no)? "
send "no\r"
expect -re "root@.*:\/#"
인증서를 다운로드 한 다음 적절한 디렉토리에 배치해야합니다. 또는 CA 인증서를 다운로드 한 다음 해당 CA를 신뢰 하도록 구성 옵션 ssl-authority-files 를 설정할 수 있습니다 .
이 책 의 SSL 인증서 관리 섹션을 참조하십시오 .