Se você estiver executando o Gnome-keyring ou o Kwallet localmente, poderá enviá-los através do ssh, com um pouco de trabalho. Eles usam soquetes Unix, que o ssh não pode encaminhar. Mas você pode usar a socat
retransmissão dos soquetes Unix para soquetes TCP localmente e vice-versa na máquina remota:
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 &
Isso pode ser automatizado com pequenos scripts de shell em cada lado e uma entrada de RemoteForward
linha ~/.ssh/config
. Em teoria, você poderá acessar o chaveiro do gnome na máquina remota. No entanto, tentei acessá-lo com cavalos-marinhos, e ele nem tentou se conectar $GNOME_KEYRING_SOCKET
; Não sei por que e não sei se o svn seria capaz de acessar o chaveiro.
Você pode armazenar sua senha svn em um sistema de arquivos criptografado. Existem várias opções ; Eu acho que a maneira mais simples de ir é encfs
. Configuração inicial:
sudo aptitude install encfs
encfs ~/.passwords.encrypted ~/.passwords
mv ~/.subversion/auth ~/.passwords/svn-auth
ln -s ../.passwords/svn-auth ~/.subversion/auth
Fluxo de trabalho normal:
encfs ~/.passwords.encrypted ~/.passwords
... work ...
fusermount -u ~/.passwords
Este método tem minha preferência por vários motivos:
- A configuração inicial e o fluxo de trabalho normal são muito simples.
- Não importa de onde você efetua login, em particular você não precisa de um servidor X local e usa o encaminhamento do X pelo ssh.
- Um sistema de arquivos criptografado é mais versátil que um chaveiro (embora seja menos conveniente para o uso do chaveiro, mas no caso do svn isso não importa).
- A única ferramenta não onipresente de que você precisa é encfs (que requer o FUSE), e está empacotada para o Ubuntu.