svn + ssh checkout 사용자를 보호하는 방법?


0

모든 SVN 리포지토리는 모든 개발자가 액세스 할 수있는 전용 시스템에서 호스팅됩니다. 때때로 우리는 우리가 소유하지 않거나 자신을 운영하지 않는 컴퓨터에서 저장소를 체크 아웃해야합니다. 현재 우리는 모두 자체 시스템 (SSH) 계정을 사용하지만 대신 사용할 수있는 일반적인 'checkoutsvn'사용자를 사용하고 싶습니다. 이 사용자는 리포지토리에서 체크 아웃하는 데만 사용되지만 시스템에 로그인 할 수 없습니다 (쉘 액세스 없음). 해당 계정의 기본 쉘을 / sbin / nologin으로 설정 하여이 작업을 시도했지만 svn + ssh에 쉘 액세스가 필요하기 때문에 SVN이 실패합니다.

어떻게합니까? 이것에 대한 좋은 해결책이 있습니까?


나는 내 자신의 질문에 대답하기 싫어,하지만 난이 흥미로운 스레드를 발견 serverfault.com/questions/11521/svnssh-security이
vincent.io

답변:


0

내 웹 호스트에는 다음 지침이 있습니다.

nano 또는 FTP 클라이언트를 사용하여 ~ / .ssh / authorized_keys를 열고 다음을 모두 한 줄에 입력하십시오.

command="/usr/bin/svnserve -t -r /home/[username]/svn",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty [public key text from id_rsa.pub]

이 계정에 대해 svn 사용자를 여러 명 보유하려면 ~ / .ssh / authorized_keys의 명령에도 –tunnel-user = 옵션이 제공되어야합니다. (웹 호스트) 사용자 이름이 아닙니다. 사용자의 체크인 및 체크 아웃을 표시 할 이름입니다.

그리고 svnserve 매뉴얼 페이지에서 :

-r root, --root=root
      Sets the virtual root for repositories served  by  svnserve.   The
      pathname  in URLs provided by the client will be interpreted rela‐
      tive to this root, and will not be allowed to escape this root.

svnserve 바이너리를 사용하고 싶지 않기 때문에 이것이 실제로 내 문제에 대한 해결책이 아니라고 두려워합니다.
vincent.io

0

약간의 생각 후에 나는 이것을 위해 svn + ssh를 사용하는 것이 아니라고 생각합니다. 따라서 https를 통해 svn으로 전환하여 훨씬 세밀한 제어를 제공합니다.

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