콘솔에서 Subversion을 사용할 때 비밀번호를 저장하는 방법


106

svn콘솔에서 작업을 할 때 내 Subversion 암호를 저장하는 방법이 있는지 궁금합니다 . 콘솔은 내가 가진 유일한 옵션입니다. 예를 들어 Subversion 작업을 수행하려고하면 svn commit매번 계정 암호를 입력하라는 메시지가 표시됩니다. 매번 다시 입력 할 필요가 없도록이 암호를 저장하는 방법이 있습니까?


수락 된 답변이 작동하지 않는 경우 문제 해결을 위해 구성이 설정되어 있어도 svn 저장소 암호를 만들 수 없음을 참조하십시오 .
maxschlepzig

답변:


110

에서가 ~/.subversion/config, 당신은 아마 있습니다 store-passwords = no. 그것을 변경하십시오 yes(또는 기본값이 yes이므로 주석 처리하십시오). 다음에 Subversion에 암호를 제공하면 저장해야합니다.

의 소유자 및 권한 ~/.subversion/config이 올바른지 확인할 수 있습니다 (공개 또는 그룹 액세스 없음, 600).


에서이 파일을 찾을 수 없습니다 Red Hat Linux 2.6.18. 그것이 어디에있을 수 있는지 아십니까?
Ish

3
@Ish 아직 존재하지 않으면 만들어야 할 수도 있습니다. 나는 SVN이 모든 배포판에서 보인다고 생각합니다
Michael Mrozek 2011-08-04

5
+1, 파일 /etc/subversion/config시스템 생성 후 예상대로 작동합니다. 감사합니다
Ish

@IshKumar 감사합니다! 처음으로 나를 위해 일했습니다!
Anil

15
@Seven Better 아직은 더 최신의 새 답변을 작성하십시오. ( store-passwords에서 옵션 config내에서 발견 된 일부 기본 의견에 따라 지금은 사용되지 않으며, config파일, 그것은 동일한 옵션으로 대체되었습니다 servers.)
카일 스트랜드

54

사용중인 프로토콜에 따라 다릅니다. SVN + SSH를 사용하는 경우 SVN 클라이언트는 암호를 건드리지 않기 때문에 암호를 저장할 수 없습니다. SSH 클라이언트는 암호를 직접 입력하라는 메시지를 표시합니다. 이 경우 SSH 키와 ssh-agent를 사용하여 지속적인 프롬프트를 피할 수 있습니다. svnserve 프로토콜 또는 HTTP (S)를 사용하는 경우 SSH 클라이언트가 암호를 처리하고 저장할 수 있습니다.


4
+1 정확한 문제가 있습니다. svn + ssh는 항상 나에게 암호를 묻습니다. 공개 키를 공유하는 것 외에 이것을 피할 수있는 방법이 있습니까? ssh-agent를 사용해 보았지만 운이 없습니다.
Michael Mikowski 2012 년

@MichaelMikowski SSH 암호를 자동 로그인을 위해 구성에 저장할 수없는 것 같습니다. 새 키 쌍을 생성하고, 개인 키의 위치를에 저장하고 .ssh/config, SVN 서버에 공개 키를 추가 할 수 있습니다.
lk_vc 2014 년

33

.subversion홈 디렉토리에서 폴더를 지우고 커밋을 다시 시도하십시오. 암호를 묻는 메시지가 표시되고 암호를 저장할 것인지 묻습니다.


대신 .subversion 폴더를 의미합니다!
khmarbaise

3
나는 같은 문제가 있었다. 내 구성 또는 서버 파일에 "no"로 설정된 저장소 암호 설정이 없었지만 작동했습니다.
Bob B

1
모든 종류의 설정을 아무 소용이 없도록 변경하려고했습니다. 궁극적으로이 문제를 해결 한 유일한 방법은 실제로 .subversion 폴더를 삭제하는 것입니다.
Michael Noyb

이것은 나에게도 효과적이었습니다. 흥미롭게도 ~ / .subversion / auth / svn.simple 폴더에 암호가 저장되었습니다.
Chetan

이것은 나에게도 그랬지만 차이점이 무엇인지 지켜 보았고 .subversion 디렉토리와 그 파일의 소유권으로 밝혀졌습니다. 다른 컴퓨터에서 데이터를 전송 한 후이 디렉토리는 내가 소유해야 할 때 루트 소유가되었습니다. 디렉토리를 제거하고 svn이 다시 생성하도록하면 문제가 해결되었습니다 (그러나 chown은 아마도 그것을 고쳤을 것입니다).
Joe Strout

19

나는 편집해야했다 ~/.subversion/servers. 설정했습니다 store-plaintext-passwords = yes(이전에는 없었습니다). 그게 속임수였습니다. 하지만 안전하지 않은 것으로 간주 될 수 있습니다.


3
같은 파일에서 store-passwords = yes. 나는 이전에 설정 한 생각하지만, 나는 1.7 SVN으로 업데이트 할 때 해제 있어요
pieman72

9

~/.subversion/servers파일 에서 다음 단락을 참고 하십시오.

이제 'store-passwords'와 'store-auth-creds'를 config 디렉토리의 'servers'파일에 지정할 수 있습니다. 이 섹션에 지정된 모든 것은 'servers'파일에 지정된 설정으로 대체됩니다.

SVN 버전 1.6.12 이상입니다. 따라서를 재정의 할 때 servers 파일도 편집해야합니다 ~/.subversion/config.


이는 동일한 파일 (두 개의 "암호 저장소"선언!)에 재정의가 있음을 확인하는 데 도움이되었습니다. 이를 수정하고 svn.simple 파일이 gnome-keyring 속성으로 생성되었습니다.
Danielson Alves Júnior

5

svn + ssh 를 사용하는 경우 공개 ssh 키를 원격 시스템에 복사 할 수 있습니다.

ssh-copy-id user@remotehost

5

나에게 (Mac 사용자) 문제는 키 체인에 이미 내 자격 증명에 대한 항목이 저장되어 있지만 액세스 권한이 올바르지 않다는 것입니다.

키 체인 앱에서 항목을 삭제 한 다음 svn을 사용하여 다시 생성하면 문제가 해결되었습니다.


4

이 멋진 답변 중 어느 것도 Ubuntu를 새로 설치했을 때 저에게 효과가 없었습니다. 에서 대신 단서 답변 나를 위해 트릭을했습니다.

다음을 비워 두어 "간단한"암호 저장소를 허용해야했습니다 ~/.subversion/config.

password-stores =

기존 설정이 없으므로 비어있는 것이 중요합니다.

이것은 다음에 추가되었습니다.

store-passwords = yes

에서 ~/.subversion/servers.


이것은 또한 기본 옵션이 작동하는 것처럼 보이지만 명시 적으로 지정하지 않는 한 도움이되지 않습니다. :(
Arunas Bartisius

3

암호가 다른 것으로 사용되는 경우 일반 텍스트를 사용하는 것이 최선의 선택이 아닐 수 있습니다.

나는 받아 들여진 대답을지지하지만 그것은 나를 위해 작동하지 않았다-아주 특정한 이유로 : 나는 kwallet또는 gnome-keyring암호 저장소 를 사용하고 싶었다 . 네 파일 모두에서 설정을 변경해 보았습니다.

/etc/subversion/config
/etc/subversion/servers
~/.subversion/config
~/.subversion/servers

모든 것을 동일하게 설정 한 후에도 password-storesKWallet 이름 (기본값이 잘못되었을 수 있습니다. 맞나요?)이 작동하지 않고 계속 암호를 요청했습니다. 의 파일에는 ~/.subversion600 개의 권한 이 있습니다 .

글쎄, 그 시점에서 당신은 한 가지 간단한 것을 확인하려고 할 수 있습니다.

which svn

얻을 경우 :

/usr/bin/local/svn

그러면이 클라이언트가 관리자 (제 경우와 같이 자신 일 수 있음)가 로컬에서 소스에서 빌드 한 것으로 의심 할 수 있습니다.

Subversion은 컴파일 하기 매우 까다 롭고 실수로 HTTP 지원없이 빌드하거나 암호화 된 암호 저장소를 지원하지 않고 실수로 빌드하기가 매우 쉽습니다 (Gnome 또는 KDE 개발 파일이 필요하며 많은 파일이 필요합니다!). 하지만 ./configure스크립트는이를 알려주지 않고 기능이 떨어집니다.svn 명령 됩니다.

이 경우 배포판과 함께 제공된 클라이언트 (일반적으로 /usr/bin/svn. 단점은 svn downgrade명령 이 없기 때문에 작업 복사본을 다시 체크 아웃해야한다는 것입니다 . 어쨌든 Subversion에 대해 어떻게 생각할지 Linus Torvalds 에게 문의 할 수 있습니다 .)


2

Heath의 답변에 추가하려면 : Subversion 1.6은 암호화 된 형식으로 저장할 수없는 경우 기본적으로 암호 저장을 비활성화 한 것처럼 보입니다. 에서 명시 적으로 설정 password-stores =(즉, 빈 값)하여 암호화되지 않은 암호 저장을 허용 할 수 있습니다 ~/.subversion/config.

어떤 암호 저장소 Subversion이 사용하는지 확인하려면을 참조하십시오 ~/.subversion/auth/svn.simple. 여기에는 각각 간단한 키 / 값 인코딩이있는 해시 테이블이있는 여러 파일이 포함됩니다. svn:realmstring각 파일 의 는 해당 파일의 영역을 식별합니다. 파일에

K 8
passtype
V 6
simple

그런 다음 해당 파일의 K 8 password항목 에있는 일반 텍스트로 암호를 저장합니다 . 그렇지 않으면 구성된 password-stores.


1

여기에 언급 된 모든 방법이 저에게 효과가 없습니다. 소스에서 Subversion을 빌드했고이 --enable-plaintext-password-storage기능을 지원 하려면 configure with 를 실행해야한다는 것을 알게되었습니다 .


1

Tomasz Gandor와 Domain이 svn의 올바른 버전을 가지고 있으며 평문 암호 저장을 가능하게하기 위해 컴파일되었다고 말한 것을 강조하기 위해, 당신이 가지고있는 것을 확인해야합니다 :

svn --version
svn, version 1.9.7 (r1800392)
...
WARNING: Plaintext password storage is enabled!
...

The following authentication credential caches are available:

* Plaintext cache in /gr/home/ffvdqb/.subversion
* GPG-Agent

대:

svn --version
svn, version 1.12.2 (r1863366)
...

The following authentication credential caches are available:

* Gnome Keyring
* GPG-Agent
* KWallet (KDE)

svn 버전이 일반 텍스트 암호 저장에 대해 활성화 된 것을 확인한 다음 나머지 모든 답변을 여기에 적용하십시오.


1

Windows 에서 TortoiseSVN 클라이언트를 사용 하고 있으며 저에게는 store-passwords 매개 변수를 yes 로 설정 합니다. .%USERPROFILE%\AppData\Roaming\Subversion\config 설정해도 암호를 저장하는 데 도움이되지 않습니다.

이 폴더를 제거한 후 암호가 성공적으로 저장되었습니다 (이름을 바꾸는 경우에만 해당) :

%USERPROFILE%\AppData\Roaming\Subversion\auth

환경:

Windows 7, TortoiseSVN 1.7.11 (Build 23600 - 64 bit, 2012-12-12T19:08:52), Subversion 1.7.8.

0

불행히도 대답은 보호 된 개인 키로 ssh + svn에 대한 암호를 묻는 문제를 해결하지 못했습니다. 몇 가지 조사 끝에 다음을 발견했습니다.

ssh-add

Linux 컴퓨터가있는 경우 유틸리티. 키가 저장되어 있는지 확인하고 /home/username/.ssh/터미널에이 명령을 입력하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.