จะปิดการใช้งานพวงกุญแจสำหรับ SSH และ GPG ได้อย่างไร?


19

จะปิดการใช้งานพวงกุญแจสำหรับ SSH และ GPG ได้อย่างไร?

ฉันต้องการเก็บกุญแจไว้สำหรับ wifi และสิ่งอื่น ๆ ฉันใช้ Ubuntu 12.04


1
คุณไม่สามารถปฏิเสธที่จะบันทึกรหัสผ่านเหล่านั้นลงในพวงกุญแจได้หรือไม่? สำหรับ ssh มาตรฐานมันจะไม่บันทึกรหัสผ่านหากคุณไม่ได้ตั้งค่าไว้ในประสบการณ์ของฉัน
Marty Fried

ฉันไม่รู้ มีวิธีรีเซ็ตพวงกุญแจหรือไม่ เพื่อทดสอบ หัวข้อในหัวข้อมี Ubuntu 12.04 LTS อยู่ในนั้น แต่ @ jorge-castro เปลี่ยนไป
brodul

Keyring ไม่ได้เปลี่ยนแปลงอะไรมากในขณะนี้ แต่ฉันเพิ่มเข้าไปในคำถามเพื่อความชัดเจนไม่จำเป็นต้องใช้มันเพื่อถ่วงชื่อแม้ว่าคำตอบน่าจะใช้ได้กับหลายรุ่น
Jorge Castro

ขออภัยสำหรับคำถาม noob แต่อะไรคือแรงจูงใจของคุณสำหรับการปิดใช้งาน keyring สำหรับ SSH
Stephane

1
@ สตีเฟ่นฉันไม่สามารถพูดถึง OP แต่ฉันไม่ต้องการข้อมูลที่สำคัญอย่างเปิดเผยในทางใดทางหนึ่ง ฉันอยากจะใส่รหัสผ่านของคีย์ ssh ทุกครั้งที่ฉันเชื่อมต่อกับเซิร์ฟเวอร์มากกว่าที่เก็บพวงกุญแจให้โปรแกรมใด ๆ และทุกคนในพื้นที่ผู้ใช้ของฉันเข้าถึง ssh โดยพลการ นี้ไม่สมเหตุสมผลสำหรับคนอื่น ๆ แน่นอน แต่ imo แรงจูงใจที่นี่เป็นที่เข้าใจ
phil294

คำตอบ:


12

ครั้งแรกซ้ำไฟล์ลงใน/etc/xdg/autostart/gnome-keyring-ssh.desktop~/.config/autostart/

จากนั้นแก้ไข~/.config/autostart/gnome-keyring-ssh.desktopเพื่อลบบรรทัดต่อไปนี้:

NoDisplay=true

และเพื่อเพิ่มบรรทัดต่อไปนี้ในตอนท้าย:

X-GNOME-Autostart-enabled=false

สิ่งนี้ควรปิดใช้งานการจัดการ SSH เมื่อคุณเริ่มต้นเซสชันใหม่ /etc/xdg/autostart/gnome-keyring-gpg.desktopเพื่อปิดการใช้งานจีพีจีทำเช่นเดียวกันกับไฟล์


ขอบคุณในที่สุดก็แก้ปัญหาได้
brodul

7

ในเซสชันเทอร์มินัล (โดยใช้Ctrl- Alt- T) คุณสามารถหยุดกระบวนการ gnome-keyring จากการทำงานกับ ssh โดยใช้:

unset SSH_AUTH_SOCK 

--no-use-agentตัวเลือกที่สามารถใช้ได้กับ gpg หลีกเลี่ยงการใช้กระบวนการ gnome-พวงกุญแจที่มีจีพีจี แต่ที่เป็นค่าเริ่มต้น

คุณสามารถหยุด nautilus seahorse-tool จากการใช้ gpg-agent โดยใช้:

rm `echo $GPG_AGENT_INFO | sed s/:0:1//`

คุณสามารถหยุดกระบวนการ gnome-keyring ได้อย่างสมบูรณ์ด้วยคำสั่ง:

kill $GNOME_KEYRING_PID

การดำเนินการข้างต้นแต่ละอย่างได้รับการกู้คืนโดยลงชื่อเข้าใช้อีกครั้ง


รหัสผ่าน Wifi ที่มีให้สำหรับรหัสผู้ใช้ทั้งหมดจะถูกเก็บไว้ใน/etc/NetworkManager/system-connections/ไดเรกทอรีแทนที่จะเก็บไว้ในพวงกุญแจ gnome ของคุณเพื่อให้สามารถใช้งานได้หากคุณฆ่ากระบวนการ gnome-keyring

ssh-addคำสั่งที่สามารถใช้ในการลบ (หรือเพิ่ม) ปุ่มเฉพาะจาก / ถึงปัจจุบัน gnome-พวงกุญแจพวงกุญแจในขณะที่กระบวนการที่กำลังทำงาน

รหัสผ่านแต่ละคีย์สามารถลบได้จากข้อมูลล็อกอินหรือรหัสผ่านอื่น ๆ โดยใช้Passwordsแท็บของPasswords and Keysโปรแกรม (ซีฮอร์ส)

หากไม่มี gnome-keyring ssh-agent จะยังคงทำงานอยู่ แต่จะไม่เก็บคีย์ gpg


มีสองบรรทัดที่/etc/pam.d/lightdmเกี่ยวข้องกับการบันทึกรหัสผ่านการเข้าสู่ระบบและการเริ่มต้น gnome-keyring-daemon ด้วยรหัสผ่านเข้าสู่ระบบปลดล็อคด้วยรหัสผ่านเข้าสู่ระบบ ที่สองเริ่ม daemon:

session optional        pam_gnome_keyring.so auto_start

การแสดงความคิดเห็นเฉพาะบรรทัดนี้จะหยุดไม่ให้เริ่มต้นเซสชันทั้งหมดของผู้ใช้ทั้งหมดของระบบของคุณโดยใช้รหัสผ่านการเข้าสู่ระบบเพื่อปลดล็อคพวงกุญแจเข้าสู่ระบบ

/etc/xdg/autostart/มีรายการเริ่มต้นสำหรับหมวดหมู่ของความลับต่าง ๆ ที่ gnome-keyring สามารถจัดการได้ หากต้องการหยุด daemon ไม่ให้เริ่มส่วนประกอบเหล่านี้ไฟล์เหล่านี้สามารถย้ายออกจากไดเรกทอรีนี้ได้ คุณสามารถย้ายไฟล์ gnome-keyring- * ทั้งหมดเพื่อหยุด daemon จากการเริ่มต้นหรือสามารถปฏิเสธที่จะระบุรหัสผ่านการเข้าสู่ระบบอีกครั้งเพื่อปิดการใช้งานการป้อนรหัสการเข้าสู่ระบบในขณะที่ปล่อยให้ daemon ทำงาน


ยกเลิกการตั้งค่า SSH_AUTH_SOCK tnx มีวิธียกเลิกการตั้งค่าทุกเซสชันหรือไม่ ฉันใช้อินิกเมลสำหรับธันเดอร์เบิร์ดและมีปัญหากับอินิกเมล (อย่าลืมรหัสผ่าน)
brodul

มีวิธีการปิดการใช้งานพวงกุญแจเมื่อเริ่มต้นหรือไม่ (ฉันไม่ต้องการเขียนสคริปต์ที่ฆ่าพวงกุญแจ)
brodul

ฉันได้แก้ไขคำตอบด้วยข้อมูลเพิ่มเติมที่อาจเป็นประโยชน์ แต่อาจเป็นการดีกว่าถ้าขอให้หลีกเลี่ยง Enigmail โดยตรงในคำถามแยกต่างหากโดยเจาะจงเกี่ยวกับสิ่งที่คุณต้องการ
John S Gruber

คุณสามารถล้างพวงกุญแจ (ลืมรหัสผ่านของคุณทั้ง gpg และ SSH และอื่น ๆ ) gnome-keyring-daemon -r -dโดยการทำ นี่เป็นวิธีที่ง่ายในการรีสตาร์ท daemon ปัญหาที่เป็นไปได้อย่างหนึ่งคือถ้ามันไม่ทำงานในตอนแรกมันจะเริ่มต้นขึ้น (ฉันไม่ทราบวิธีที่ดีในการเริ่มต้นใหม่ถ้ามันทำงานอยู่แล้วยกเว้นการแยกวิเคราะห์ps: /)
unhammer

2

หากต้องการหยุด gnome-keyring ไม่ให้เริ่มต้นเอเจนต์ SSH ( เสีย ) บน Ubuntu 16.04:

mkdir ~/.config/upstart || true
echo manual > ~/.config/upstart/gnome-keyring-ssh.override

# This step can be done with the gnome-session-properties tool
mkdir ~/.config/autostart || true
cp /etc/xdg/autostart/gnome-keyring-ssh.desktop ~/.config/autostart
echo 'X-GNOME-Autostart-enabled=false' >> ~/.config/autostart/gnome-keyring-ssh.desktop

ฉันเห็นว่าบรรทัดสุดท้ายของคุณใช้ความจริงที่ว่า / usr/share/upstart/sessions/gnome-keyring-ssh.conf ค้นหาบรรทัดนั้นและออกทันทีก่อนที่จะส่งออก SSH_AUTH_SOCK ฉันคิดว่าคุณไม่ต้องการ ~ / .config / upstart file / directory ถ้าคุณต่อท้ายHidden=trueไฟล์ .desktop ด้วย สิ่งนี้จะปกปิดทางลัด "ของจริง" (ระบบ) จากเดสก์ท็อปทั้งหมดแม้จะใช้กับ GNOME / Unity ก็ตาม ฉันจะทำการทดสอบนี้ในไม่ช้าเนื่องจากฉันกำลังมองหาวิธีที่ดีในการปิดใช้งาน gnome-keyring-ssh โดยไม่ส่งผลกระทบต่อฟังก์ชั่นอื่น ๆ
dragon788

1

ด้วย Ubuntu รุ่นปัจจุบันการเปลี่ยน.desktopไฟล์ที่กล่าวถึงในคำตอบอื่น ๆ นั้นไม่เพียงพออีกต่อไป เพิ่มงานพุ่งพรวดเพิ่มเติมที่เริ่มต้นgnome-keyring-daemonด้วย ไฟล์อยู่ใน/usr/share/upstart/sessions/gnome-keyring.confและมี:

eval "$(gnome-keyring-daemon --start)" >/dev/null
initctl set-env --global SSH_AUTH_SOCK=$SSH_AUTH_SOCK
initctl set-env --global GPG_AGENT_INFO=$GPG_AGENT_INFO

ในที่นี้ daemon จำเป็นต้องถูก จำกัด เพื่อให้บริการบางอย่างเท่านั้นโดยเพิ่ม--components=pkcs11,secretsลงในบรรทัดคำสั่ง initctlสายยังสามารถถอดออกได้ผลใน:

eval "$(gnome-keyring-daemon --start --components=pkcs11,secrets)" >/dev/null

1
ฉันจะแทนที่ไฟล์นี้ต่อผู้ใช้โดยไม่แก้ไขไฟล์ระบบได้อย่างไร?
dolmen

การเปลี่ยนไฟล์ระบบเป็นการปฏิบัติที่ไม่ดี ดูคำตอบของฉันเอง
dolmen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.