คุณสามารถเรียกใช้ Gnome-keyring หรือ Kwallet บนเครื่องระยะไกล แต่ละตัวมีสององค์ประกอบคือ daemon และ GUI
คุณสามารถเรียกใช้แอปพลิเคชัน GUI บนเครื่องระยะไกลหากคุณเรียกใช้ ssh ด้วยการส่งต่อ X เพียงเพราะมันเป็นเครื่อง "เซิร์ฟเวอร์" ไม่ได้หมายความว่าคุณไม่สามารถติดตั้งแอปพลิเคชัน GUI ในเครื่องได้ ไม่สำคัญว่าคุณกำลังเรียกใช้สภาพแวดล้อมเดสก์ท็อปที่เกี่ยวข้องหรือไม่แอปพลิเคชันไม่จำเป็นต้องใช้สภาพแวดล้อมเดสก์ท็อปที่เฉพาะเจาะจง
คุณสามารถควบคุม Kwallet ในบรรทัดคำสั่งผ่านqdbus
ได้แม้ว่าจะไม่ใช่ความคิดที่ดีในกรณีเฉพาะนี้เพราะคุณต้องเขียนรหัสผ่านของคุณใน cleartext บนบรรทัดคำสั่งและผู้ใช้รายอื่นสามารถสอดแนมได้ ดูเพิ่มเติมนี้คำตอบ SU
หลามมีผลผูกพันกับทั้ง Gnome-keyring และ Kwallet (แพ็คเกจpython-keyring-gnome
และpython-keyring-kwallet
); คุณสามารถเขียนสคริปต์หลามเล็ก ๆ เพื่อควบคุมมันได้ ในความเป็นจริงมีอยู่แล้วหนึ่งสำหรับ Gnome-พวงกุญแจ: gkeyring
หากรหัสผ่าน keyring ของคุณเหมือนกับรหัสผ่านเข้าสู่ระบบคุณสามารถติดตั้งlibpam-keyring
และรหัสผ่านของคุณจะถูกปลดล็อคโดยอัตโนมัติเมื่อคุณเข้าสู่ระบบอย่างไรก็ตามการทำเช่นนี้จำเป็นต้องลงชื่อเข้าใช้ด้วยรหัสผ่านแทนที่จะเป็นคู่คีย์
หากคุณใช้ Gnome-keyring หรือ Kwallet ในพื้นที่คุณสามารถส่งต่อพวกเขาผ่าน ssh ด้วยการทำงานเล็กน้อย พวกเขาใช้ซ็อกเก็ต Unix ซึ่ง ssh ไม่สามารถส่งต่อ แต่คุณสามารถใช้socat
รีเลย์ Unix sockets ไปยัง TCP sockets ในเครื่องและในทางกลับกันบนเครื่องระยะไกล:
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 จากเครื่องระยะไกลได้ อย่างไรก็ตามฉันพยายามเข้าถึงด้วยม้าน้ำและมันก็ไม่ได้พยายามเชื่อมต่อ$GNOME_KEYRING_SOCKET
ด้วย ฉันไม่รู้ว่าทำไมและฉันไม่รู้ว่า svn จะสามารถเข้าถึงพวงกุญแจได้หรือไม่
คุณสามารถเก็บรหัสผ่าน 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 ในเครื่องและใช้การส่งต่อ X ผ่าน ssh
- ระบบไฟล์ที่เข้ารหัสนั้นมีความหลากหลายมากกว่าพวงกุญแจ (แม้ว่าจะสะดวกกว่าสำหรับการใช้พวงกุญแจ แต่ในกรณี svn ที่ไม่สำคัญ)
- เครื่องมือที่ไม่ใช้กันอย่างแพร่หลายเพียงอย่างเดียวที่คุณต้องการคือ encfs (ซึ่งต้องใช้ FUSE) และเป็นชุดสำหรับ Ubuntu