ฉันสงสัยว่ามันเป็นไปได้ที่จะใช้ gnome-keyring-daemon โดยไม่มี X หรือไม่โดยปกติแล้วมันจะแสดงพรอมต์กราฟิกเพื่อรับรหัสผ่านสำหรับพวงกุญแจ มีวิธีแก้ไขไหม ฉันต้องการที่จะสามารถใช้ Ubuntu ได้โดยไม่ต้องเริ่มเซสชันกราฟิกและพิมพ์รหัสผ่านของฉัน
ฉันสงสัยว่ามันเป็นไปได้ที่จะใช้ gnome-keyring-daemon โดยไม่มี X หรือไม่โดยปกติแล้วมันจะแสดงพรอมต์กราฟิกเพื่อรับรหัสผ่านสำหรับพวงกุญแจ มีวิธีแก้ไขไหม ฉันต้องการที่จะสามารถใช้ Ubuntu ได้โดยไม่ต้องเริ่มเซสชันกราฟิกและพิมพ์รหัสผ่านของฉัน
คำตอบ:
คุณสามารถใช้ได้ pam_gnome_keyring.so
เพื่อเริ่มและปลดล็อคภูต GDM ทำสิ่งนี้แล้ว สำหรับ login
คุณต้องกำหนดค่าด้วยตนเอง
เพิ่มบรรทัดเหล่านี้ไปที่ /etc/pam.d/login
:
auth optional pam_gnome_keyring.so session optional pam_gnome_keyring.so auto_start
หากคุณเข้าสู่ระบบโดยไม่มีรหัสผ่าน (SSH ด้วย Kerberos หรือกุญแจสาธารณะ) สิ่งนี้ อาจ ทำงาน: (ฉันยังไม่ได้ทดสอบ)
echo -n "mypassword" | gnome-keyring-daemon --login
(คุณยังต้องใช้ดีมอนเพื่อให้ทำงาน - เริ่มจาก PAM หรือด้วย --daemonize
.)
gnome-keyring-daemon --help
. ฉันเพิ่งตรวจสอบ manpage และ / usr / share / doc
read -rsp "Password: " pass; echo -n "$pass" | gnome-keyring-daemon --login
ในสคริปต์
gnome-keyring-daemon --help
ให้ภาพรวมที่ดีแก่ฉัน แต่ man gnome-keyring-daemon
เพียงแค่มีคำอธิบายสั้น ๆ เกี่ยวกับโปรแกรม แต่ไม่มีข้อโต้แย้ง
งานที่จำเป็นของการติดตั้ง svn ด้วยการสนับสนุน keyring และการติดตั้ง แอปพลิเคชัน Collabnet keyring_tool ได้รับการดำเนินการแล้วสำหรับเซิร์ฟเวอร์ Linux ของเรา
1) กำหนดค่าไคลเอนต์ SVN เพื่อใช้พวงกุญแจ:
1.1) แก้ไข ~ / .subversion / config
[auth]
password-stores = gnome-keyring
1.2) แก้ไข ~ / .subversion / เซิร์ฟเวอร์
[global]
store-passwords = yes
store-plaintext-passwords = no
2) สร้างพวงกุญแจสำหรับรหัสผ่านของคุณ คุณจะได้รับแจ้งให้สร้างรหัสผ่านใหม่เพื่อปลดล็อคพวงกุญแจ นี่อาจเป็นสิ่งที่คุณต้องการ:
keyring_tool --create=svn
3) ตั้งค่าพวงกุญแจใหม่เป็นค่าเริ่มต้น:
keyring_tool --setdef=svn
4) ใน. bash_profile หรือ. bash_login (สมมติว่าคุณใช้ bash เป็นเทอร์มินัลของคุณ)
if [ -e /usr/bin/gnome-keyring-daemon ]; then
if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
# Create dbus transport link for SVN to talk to the keyring.
eval `dbus-launch --sh-syntax`
# Start the keyring daemon.
# The use of export here captures the GNOME_KEYRING_PID, GNOME_KEYRING_SOCK
# env values echoed out at startup.
export `/usr/bin/gnome-keyring-daemon`
fi
fi
5) ใน. bash_logout
# Kill the message bus established for SVN / Keyring communication
if [ ! -z "`kill -0 $DBUS_SESSION_BUS_PID 2>&1`" ]; then
kill $DBUS_SESSION_BUS_PID > /dev/null 2>&1
fi
# Kill the Gnome Keyring Daemon prior to logout.
if [ ! -z "`kill -0 $GNOME_KEYRING_PID 2>&1`" ]; then
kill $GNOME_KEYRING_PID > /dev/null 2>&1
fi
ฉันพบปัญหาที่คล้ายกันในขณะที่พยายามสร้างวิธีที่ไม่ยุ่งยากเพื่อให้แน่ใจว่าผู้ใช้ที่ได้รับอนุญาตเข้าถึง repos SVN บางตัวในที่ทำงาน โดยทั่วไปเราต้องบังคับให้ตรวจสอบข้อมูลรับรองทุกครั้งที่ผู้ใช้เข้าถึงเซิร์ฟเวอร์ดังนั้นแม้แต่คำสั่ง svn update ก็จำเป็นต้องมีการตรวจสอบสิทธิ์ การจัดเก็บรหัสผ่านข้อความธรรมดาอย่างชัดเจนนั้นเกิดขึ้นจากการค้นคว้าเล็กน้อยฉันจึงใช้ gnome-keyring เพื่อรบกวนฐานผู้ใช้ของเราด้วยการร้องขอการพิสูจน์ตัวตนอย่างต่อเนื่องในขณะที่ยังคงป้องกันผู้ใช้ที่ไม่ได้รับอนุญาตออกจากที่เก็บ
งานประจำวันของเราส่วนใหญ่ทำผ่าน ssh tunnels ไปยังเซิร์ฟเวอร์ RedHat โดยไม่มีการรองรับ X ดังนั้นฉันต้องหาวิธีรอบ ๆ การรองรับ X11 หลังจากการค้นหาบางอย่างฉันก็สามารถหาทางรอบ ๆ ได้ที่นี่:
กุญแจพวกนี้คือการใช้ Collabnet keyring_tool เพื่อสร้าง keyring โดยไม่มีไคลเอ็นต์ gnome-keyring-manager และสร้าง dbus-launch ด้วยตัวคุณเองแทนที่จะปล่อยให้ SVN จัดการการตั้งค่า SVN ใช้ DBUS เพื่อเชื่อมต่อกับ gnome-keyring-daemon และส่งผลต่อการตรวจสอบสิทธิ์โดยรวม ด้วยการเริ่มต้นและทำลายเซสชัน dbus ด้วยตนเองด้วย -sh-syntax คุณหลีกเลี่ยงการพยายามเชื่อมต่อกับ X client เมื่อเริ่มต้น dbus หากคุณเพิ่งเริ่ม gnome-keyring-daemon และพยายามที่จะใช้ SVN มันจะยังคงพร้อมท์ให้คุณใส่รหัสผ่าน keyring แต่จากนั้นจะแจ้งให้คุณทราบถึงข้อมูลประจำตัว SVN ของคุณเช่นกัน dbus จะล้มเหลวเมื่อ SVN พยายามเริ่มต้นเนื่องจากไม่มีไคลเอ็นต์ X ดูเหมือนว่า SVN จะไม่ใช้แฟล็กพิเศษใด ๆ เมื่อเริ่ม dbus
อันดับแรกสิ่งที่คุณต้องการทำจริงๆคือการใช้ Ubuntu One อย่างเคร่งครัดจาก command-line ลองดูที่ คำถามที่พบบ่อย Ubuntu หนึ่ง . คำถามที่พบบ่อยพูดว่า ปัจจุบันยังไม่สามารถทำได้ แต่มีเครื่องมือบางอย่างของ CLI u1sdtool และ u1sync . นอกจากนี้ยังมี ชุดคำถามที่พบบ่อย บน Ubuntu One ที่ Launchpad; เนื้อหาอาจเหมือนกับลิงค์ wiki.ubuntu.com ก่อนหน้า
เกี่ยวกับคำถามที่แท้จริงของคุณเกี่ยวกับ gnome-พวงกุญแจ-ภูต , คำถามที่พบบ่อยแนะนำ (1) การตั้งค่าการล็อกอินอัตโนมัติและ (2) การซิงโครไนซ์รหัสผ่านพวงกุญแจของคุณกับรหัสผ่านการเข้าสู่ระบบของคุณ สิ่งนี้ (ในทางทฤษฎี) จะหลีกเลี่ยงพรอมต์รหัสผ่าน แต่มัน คงจะ ต้องการอย่างน้อย X-session พื้นฐานที่จะใช้งาน
มีของ Ubuntu หนึ่งข้อบกพร่อง / สิ่งที่ปรารถนา บน Launchpad ที่ร้องขอทำให้ง่ายต่อการจัดการกับระบบที่ไม่มีหัว ขอแนะนำให้สร้างจากแหล่งที่มาอย่างชัดเจนสำหรับการติดตั้งที่มีน้ำหนักเบา (เพื่อหลีกเลี่ยงความต้องการไลบรารี GUI ทั้งหมดและอื่น ๆ ) ความคิดเห็นนี้ เก่า แต่น่าสนใจเป็นพิเศษ:
ปัญหาคือเราใช้ python-gnomekeyring เพื่อให้เรารองรับหัวขาดเราจะต้องเปลี่ยนไปใช้ python-keyring และจัดการกับการจัดเก็บโทเค็นที่อื่นนอกเหนือจาก gnome-keyring บนจอแสดงผลที่ไม่มีหัว อย่างไรก็ตามจะไม่มีสิ่งใดเกิดขึ้นสำหรับบรรจุภัณฑ์ Karmic เนื่องจากถูกแช่แข็งและการเปลี่ยนแปลงนี้จะไม่เป็นที่ยอมรับใน SRU
สำหรับสุวิมลเราควรมีบริการการรับรองความถูกต้องที่มีประสิทธิภาพมากขึ้นซึ่งจะช่วยให้เราสามารถรองรับการแสดงผลแบบหัวขาดได้ดียิ่งขึ้น
ฉันไม่สามารถบอกได้ว่า "บริการการพิสูจน์ตัวตนที่มีประสิทธิภาพมากขึ้น" นี้ถูกนำมาใช้กับ Lucid หรือไม่ ขึ้นอยู่กับการพึ่งพาแพคเกจดูเหมือนว่าไคลเอนต์ Ubuntu One ยังคงพึ่งพา python-gnomekeyring
ฉันประสบความสำเร็จในการทำให้ mysql-workbench ทำงานร่วมกับ gnome-keyring ในเซสชั่น SSH แบบ x-forwarded นี่เป็นบัญชีที่ใช้การรับรองความถูกต้อง publickey (ไม่มีรหัสผ่าน)
ฉันใช้ dbus-run-session เพื่อให้บรรลุสิ่งนี้เมื่อเชื่อมต่อกับเซสชัน ssh:
dbus-run-session bash -c 'GNOME_KEYRING_CONTROL=1 mysql-workbench --verbose'
หวังว่าข้อมูลนี้จะเป็นประโยชน์กับใครบางคน!
--login
ตัวเลือกนั้นค่อนข้างมีประโยชน์แม้ว่าฉันจะไม่ต้องการเก็บรหัสผ่านที่ไม่ได้แฮชไว้ในสคริปต์หรือวางไว้ในบรรทัดคำสั่ง การอ่านในโหมด unechoed จากภายในสคริปต์ (ไม่ใช่ภาษาเชลล์) ที่ส่งผ่านอินพุตนั้นไปยัง spawned daemon อาจเป็นวิธีที่ดีในการทำเช่นนี้ ฉันควรจะต้องเริ่มกระบวนการนี้เพียงครั้งเดียวต่อการบู๊ตดังนั้นจึงเหมาะสมที่จะพิมพ์รหัสผ่าน ฉันแค่ต้องสามารถทำมันที่บรรทัดคำสั่งแทนผ่านทางกล่องโต้ตอบ GTK