Ubuntu Server에 암호화 된 svn 암호를 저장하는 가장 좋은 방법은 무엇입니까? 텍스트로 저장하지 않기를 바랍니다. 여기를

훌로,

우분투 서버가 Subversion 서버를 실행하고 있습니다. SSH를 통해 동일한 컴퓨터에서 클라이언트를 실행하고 있으며 svn 클라이언트가 암호를 기억하고 일반 텍스트로 저장하지 않기를 바랍니다. 여기를 보면 gnome-keyring과 kwallet의 두 가지 방법이 있습니다. 데스크톱 관리자를 사용하지 않기 때문에 데스크톱 관리자 중 하나를 사용하는 것에 대해 약간 조심합니다. 어떤 제안? 내가 언급 한 두 가지 앱 중 하나를 사용하는 것이 좋을까요?

티아



답변

  1. 원격 시스템에서 Gnome-keyring 또는 Kwallet을 실행할 수 있습니다. 각각은 데몬과 GUI의 두 가지 구성 요소로 제공됩니다.

    • X 전달로 ssh를 실행하면 원격 시스템에서 GUI 응용 프로그램을 실행할 수 있습니다. “서버”시스템이라고해서 GUI 응용 프로그램을 설치할 수 없다는 의미는 아닙니다. 해당 데스크톱 환경을 실행하는지 여부에 관계없이 응용 프로그램을 실행하기 위해 특정 데스크톱 환경이 필요하지 않습니다.

    • 명령 행에서 Kwallet을 제어 할 수 qdbus있지만 명령 행 에서 비밀번호를 일반 텍스트로 작성해야하므로 다른 사용자가 스누핑 할 수 있기 때문에이 특정 경우에는 좋지 않습니다. 이 SU 답변 도 참조하십시오 .

    • Gnome-keyring과 Kwallet (패키지 python-keyring-gnomepython-keyring-kwallet) 모두에 대한 파이썬 바인딩이 있습니다 . 작은 파이썬 스크립트를 작성하여 제어 할 수 있습니다. 실제로 그놈 키링에는 이미 gkeyring이 있습니다.

    • 키링 비밀번호가 로그인 비밀번호와 동일한 경우 로그인 할 수 있으며 로그인 libpam-keyring할 때 키링이 자동으로 잠금 해제됩니다. 그러나이를 위해서는 키 쌍이 아닌 비밀번호로 로그인해야합니다.

  2. Gnome-keyring 또는 Kwallet을 로컬에서 실행중인 경우 약간의 작업으로 ssh를 통해 전달할 수 있습니다. 그들은 ssh가 전달할 수없는 유닉스 소켓을 사용합니다. 그러나 socatUnix 소켓을 TCP 소켓에 로컬로 릴레이하거나 다른 방법으로 원격 시스템에서 릴레이 할 수 있습니다 .

    while true; do socat TCP-LISTEN:22007 UNIX-CONNECT:"$GNOME_KEYRING_SOCKET"; done &
    ssh -R22007:localhost:22007 remote.example.com
    export GNOME_KEYRING_SOCKET="$HOME/.gnome-keyring-socket"
    while true; do socat UNIX-LISTEN:"$GNOME_KEYRING_SOCKET" TCP4:localhost:22007; done &
    

    각 측면에 작은 쉘 스크립트를 사용하여 RemoteForward라인을 자동화하여 자동화 할 수 있습니다 ~/.ssh/config. 이론적으로 원격 시스템에서 그놈 키링에 액세스 할 수 있어야합니다. 그러나 나는 해마로 액세스하려고 시도했지만 연결하려고 시도조차하지 않았습니다 $GNOME_KEYRING_SOCKET. 이유를 모르겠으며 svn이 키 링에 액세스 할 수 있는지 알 수 없습니다.

  3. 암호화 된 파일 시스템에 svn 암호를 저장할 수 있습니다. 몇 가지 옵션이 있습니다 . 가장 간단한 방법은 encfs입니다. 초기 설정 :

    sudo aptitude install encfs
    encfs ~/.passwords.encrypted ~/.passwords
    mv ~/.subversion/auth ~/.passwords/svn-auth
    ln -s ../.passwords/svn-auth ~/.subversion/auth
    

    일반적인 작업 과정 :

    encfs ~/.passwords.encrypted ~/.passwords
    ... work ...
    fusermount -u ~/.passwords
    

    이 방법은 여러 가지 이유로 선호합니다.

    • 초기 설정과 일반 워크 플로는 매우 간단합니다.
    • 로그인 위치는 중요하지 않습니다. 특히 로컬 X 서버가 필요 없으며 ssh를 통한 X 전달을 사용하지 않아도됩니다.
    • 암호화 된 파일 시스템은 키링보다 다재다능합니다 (키링 사용에는 덜 편리하지만 svn 경우에는 중요하지 않습니다).
    • 유비쿼터스가 아닌 유일한 도구는 encfs (FUSE 필요)이며 Ubuntu 용으로 패키지되어 있습니다.

답변

gpg는 암호를 가진 파일을 암호화하지만, 암호를 입력해야합니다 (개인 키를 잃어 버리지 마십시오!).

나는 당신이 개인 키를 svn에 체크인 할 수있을뿐만 아니라 그것을 사용하기 위해 여전히 암호 구가 필요할 것이라고 생각하지만,이 전체 설정은 조금 이상해 보입니다.

왜 이렇게해야합니까?


답변