Nếu bạn đang chạy Gnome-keyring hoặc Kwallet cục bộ, bạn có thể chuyển tiếp chúng qua ssh, với một chút công việc. Họ sử dụng ổ cắm Unix, mà ssh không thể chuyển tiếp. Nhưng bạn có thể sử dụng socat
chuyển tiếp các ổ cắm Unix sang ổ cắm TCP cục bộ và ngược lại trên máy từ xa:
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 &
Điều này có thể được tự động với các tập lệnh shell nhỏ ở mỗi bên và một RemoteForward
dòng trong ~/.ssh/config
. Về lý thuyết, sau đó bạn sẽ có thể truy cập khóa gnome từ máy từ xa. Tuy nhiên, tôi đã cố gắng truy cập nó bằng cá ngựa và thậm chí nó còn không thử kết nối với $GNOME_KEYRING_SOCKET
; Tôi không biết tại sao và tôi không biết liệu svn có thể truy cập khóa hay không.
Bạn có thể lưu trữ mật khẩu svn của mình trên một hệ thống tập tin được mã hóa. Có một số lựa chọn ; Tôi nghĩ rằng cách đơn giản nhất để có được đi là encfs
. Thiết lập ban đầu:
sudo aptitude install encfs
encfs ~/.passwords.encrypted ~/.passwords
mv ~/.subversion/auth ~/.passwords/svn-auth
ln -s ../.passwords/svn-auth ~/.subversion/auth
Quy trình làm việc bình thường:
encfs ~/.passwords.encrypted ~/.passwords
... work ...
fusermount -u ~/.passwords
Phương pháp này có sở thích của tôi vì một số lý do:
- Cả thiết lập ban đầu và quy trình làm việc bình thường đều rất đơn giản.
- Không quan trọng bạn đăng nhập từ đâu, đặc biệt là bạn không cần có máy chủ X cục bộ và sử dụng chuyển tiếp X qua ssh.
- Một hệ thống tập tin được mã hóa linh hoạt hơn so với khóa (mặc dù nó không thuận tiện cho việc sử dụng khóa, nhưng trong trường hợp svn không thành vấn đề).
- Công cụ không phổ biến duy nhất bạn cần là encfs (yêu cầu FUSE) và nó được đóng gói cho Ubuntu.