เมานต์: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าวพร้อมการกู้คืนที่เข้ารหัส


12

ฉันได้ทำลายการติดตั้ง Mint Linux ของฉันแล้ว ฉันแค่ต้องการเข้าถึงหน้าร้านระยะไกลของฉัน ดังนั้นสิ่งที่เกิดขึ้นคือฉันมีปัญหากับไฟล์ ICEauthority ในโฮมไดเร็กตอรี่ของฉัน ดังนั้นตามทิศทางที่แตกต่างกันบนอินเทอร์เน็ตฉันได้ข้อสรุปว่าฉันสามารถตั้งค่าโฮมไดเร็กตอรี่ซ้ำเป็น chmod 755 เพื่อให้ไฟล์นั้นทำงาน ... ในที่สุดฉันก็พบปัญหากับการโหลดระบบ ในที่สุดด้วยการตั้งค่าโฮมไดเร็กตอรี่ให้อนุญาตให้เรียกใช้รูทได้ฉันสามารถเข้าถึงการอ่าน / เขียน ... แต่จากนั้นฉันรีเซ็ตเครื่องใหม่ทำไมโอทำไมทำไมฉันถึงรีเซ็ตเครื่อง !!! - ตอนนี้ระบบโยนข้อผิดพลาดเดียวกันกับ ICEauthority แต่ไม่เคยทำให้ฉันเข้าสู่ระบบปฏิบัติการเพราะดิสก์ถูกเข้ารหัส ดูเหมือนไม่มีอะไรที่ฉันพยายามจะทำงานและฉันไม่มีเมล็ดติดตั้งดั้งเดิม

frankenmint@honeybadger /home $ sudo ecryptfs-recover-private
INFO: Searching for encrypted private directories (this might take a while)...
INFO: Found [/home/.ecryptfs/frankenmint/.Private].
Try to recover this directory? [Y/n]: y
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] y
INFO: Enter your LOGIN passphrase...
Passphrase: 
Inserted auth tok with sig [979c6cdf80d2e44d] into the user session keyring
mount: No such file or directory
ERROR: Failed to mount private data at [/tmp/ecryptfs.Hy3BV96c].

ฉันกังวลจริงๆเพราะฉันมีไฟล์สำคัญอยู่ที่นั่นซึ่งถูกเก็บไว้ในเครื่องเสมือน ... ถ้าฉันสามารถไปยังไฟล์เหล่านั้นได้ฉันก็จะไม่มี qualms ที่ทำให้การตั้งค่าและเริ่มต้นใหม่

คำตอบ:


13

ฉันพบว่าการรันsudo bashและการรันecryptfs-recover-privateในฐานะ root (แทนที่จะใช้ sudo) ทำงานได้ ไม่แน่ใจว่าทำไมมันควรจะแตกต่างกัน

แก้ไข:

TL; DR:

# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase - | ecryptfs-add-passphrase --fnek -
    < Type your login password here >
Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring

คุณจะไม่เห็นพรอมต์และต้องพิมพ์รหัสผ่านการเข้าสู่ระบบของคุณตาบอดในคำสั่งข้างต้น

แทนที่aaaaaaaaaaaaaaaaและbbbbbbbbbbbbbbbbด้านล่างด้วยลายเซ็นฐานสิบหกระหว่างวงเล็บจากเอาต์พุตด้านบนตามลำดับ:

# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain

รอบคัดเลือกโซน

มันกลับกลายเป็นว่าการทำงานเพราะรูทไม่ได้ทำงานอย่างน่าเชื่อถือสำหรับฉัน บางครั้งมันทำบางครั้งก็ไม่ได้ โดยทั่วไปแล้ว ecryptfs ดูเหมือนว่าจะเป็นบั๊กและค่อนข้างเป็นมิตรกับผู้ใช้ซึ่งมักจะสร้างความสับสนให้กับรหัสผ่านสำหรับเข้าสู่ระบบ หลังจากลงไปในโพรงกระต่ายที่ลึกและมืดฉันมีเคล็ดลับที่จะช่วยได้ หมายเหตุเหล่านี้สำหรับ Ubuntu 17.10, ecryptfs-utils 111-0 และคุณควรเป็นรูทก่อนที่จะเริ่ม ฉันคิดว่าคุณต้องการที่จะติดตั้งไดเรกทอรีบ้านของคุณจาก/mnt/crypt(ซึ่งควรจะติดตั้งแล้ว) เพื่อ/mnt/plainและคุณควรแทนที่userด้วยชื่อผู้ใช้

เริ่มง่าย

สิ่งแรกที่ควรลองคือ:

# ecryptfs-recover-private /mnt/crypt/.ecryptfs/user/.Private

หากได้ผลดีคุณโชคดี ถ้าไม่ได้ก็อาจจะให้ข้อผิดพลาดจากการเกี่ยวกับmount no such file or directoryนี่เป็นสิ่งที่ทำให้เข้าใจผิดอย่างมาก: ความหมายจริงๆของข้อความรหัสผ่านที่คุณเมานั้นผิดหรือขาดหายไป

รับลายเซ็น

นี่คือส่วนที่สำคัญ: เราจำเป็นต้องตรวจสอบ ecryptfs กำลังลองใช้วลีรหัสผ่านที่ถูกต้อง ข้อความรหัสผ่านจะต้องโหลดลงในเคอร์เนล Linux ก่อนที่จะทำการเข้ารหัสระบบไฟล์ของคุณ ecryptfs ขอเคอร์เนลสำหรับพวกเขาโดยลายเซ็นของพวกเขา ลายเซ็นเป็นค่าเลขฐานสิบหก 16 ไบต์ (และไม่ไวต่อการเข้ารหัส) คุณสามารถค้นหา ecryptfs ลายเซ็นข้อความรหัสผ่านที่ต้องการ:

# cat /mnt/crypt/.ecryptfs/user/.ecryptfs/Private.sig
aaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbb

จำสิ่งเหล่านี้ เป้าหมายคือการรับข้อความรหัสผ่านที่มีลายเซ็นเหล่านี้โหลดลงในเคอร์เนลแล้วบอกให้ ecryptfs ใช้งาน ลายเซ็นแรก ( aaaaaaaaaaaaaaaa) สำหรับข้อมูลและที่สอง ( bbbbbbbbbbbbbbbb) คือคีย์การเข้ารหัสไฟล์ชื่อ (FNEK)

รับข้อความรหัสผ่าน mount

คำสั่งนี้จะขอให้คุณให้คุณเข้าสู่ระบบรหัสผ่าน (กับพรอมต์ที่ทำให้เข้าใจผิด) และส่งออกของคุณติดข้อความรหัสผ่าน:

# ecryptfs-unwrap-passphrase /mnt/crypt/.ecryptfs/user/.ecryptfs/wrapped-passphrase

คัดลอกสิ่งนี้ แต่ต้องระวัง !! เช่นนี้มีความสำคัญอย่างยิ่ง cryptographically กุญแจสู่ราชอาณาจักร

ลองติดตั้งแบบโต้ตอบ

สิ่งต่อไปที่ควรลองคือ:

# mount -t ecryptfs /mnt/crypt/.ecryptfs/user/.Private /mnt/plain

สิ่งสำคัญที่นี่คือmountต้องมีวลีรหัสผ่านเมาท์ (ละเอียดอ่อน) ที่คุณเพิ่งคัดลอก (ไม่ใช่รหัสผ่านเข้าสู่ระบบของคุณ)

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

คุณจะเห็นตัวเลือกที่mountตัดสินใจลอง:

Attempting to mount with the following options:
  ecryptfs_unlink_sigs
  ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb
  ecryptfs_key_bytes=16
  ecryptfs_cipher=aes
  ecryptfs_sig=aaaaaaaaaaaaaaaa
Mounted eCryptfs

หากลายเซ็นไม่ถูกต้อง (ไม่ตรงกับที่คุณได้รับPrivate.sig) การติดตั้งจะไม่ทำงาน

... แต่มันจะรายงานอย่างไม่ช่วยเหลือมาก คุณจะต้องทำls /mnt/plainและเปิดไฟล์เพื่อให้แน่ใจ ณ จุดนี้คุณยังสามารถค้นหา/var/log/syslogและตรวจสอบว่า ecryptfs กำลังค้นหาลายเซ็นเดียวกันกับที่เราเป็น

เห็นได้ชัดว่ามีปัญหาที่ร้ายแรงสองประการเกี่ยวกับ ecryptfs ที่นี่และเราต้องแก้ไขปัญหาเหล่านั้น

โหลดคีย์ลงในเคอร์เนล

หากการเมาท์แบบโต้ตอบไม่ช่วยเราต้องโหลดคีย์ลงในเคอร์เนลของเราและระบุด้วยตนเองในตัวเลือกการเมานท์

# ecryptfs-add-passphrase --fnek

และวางข้อความรหัสผ่านแบบเมาท์ (super-senstive) ที่คัดลอกมาจากด้านบน ผลลัพธ์นี้ควร:

Inserted auth tok with sig [aaaaaaaaaaaaaaaa] into the user session keyring
Inserted auth tok with sig [bbbbbbbbbbbbbbbb] into the user session keyring

ติดตั้งด้วยตนเอง

ตอนนี้ข้อความรหัสผ่านถูกโหลดลงในเคอร์เนลและเราเพียงแค่บอกให้ mount ใช้มัน:

# umount /mnt/plain
# mount -i -t ecryptfs -o ecryptfs_sig=aaaaaaaaaaaaaaaa,ecryptfs_fnek_sig=bbbbbbbbbbbbbbbb,ecryptfs_cipher=aes,ecryptfs_key_bytes=16 /mnt/crypt/.ecryptfs/user/.Private /mnt/plain

คุณจะสังเกตเห็นว่าตัวเลือกนั้นคล้ายกับที่เมานต์แบบโต้ตอบพิมพ์ออกมายกเว้นว่าเรากำลังบอกด้วยตนเองว่ามีอะไรเกิดขึ้น

หวังว่ามันจะใช้ได้ หากไม่มีคุณสามารถตรวจสอบว่าคีย์ถูกโหลดลงในเคอร์เนลโดยใช้ลายเซ็นที่ถูกต้องkeyctl list @uซึ่งควรพิมพ์อย่างน้อยสองลายเซ็นที่คุณต้องการ


4
มีวิธีแก้ไขเมื่อecryptfs-recover-privateผลลัพธ์ข้อผิดพลาดการเมานท์ (2) พยายามที่จะเรียกsudo ecryptfs-managerให้กด 4 (ออก) ecryptfs-recover-privateแล้วทำงานอีกครั้งเดิม ควรทำงานตอนนี้
ulkas

1
@ulkas ความคิดใดว่าทำไมมันถึงได้ผล?
Turion

2
@Turion ฉัน googled ทางออกดังนั้นฉันไม่ได้เป็นนักประดิษฐ์ ฉันเดาว่ามีข้อผิดพลาดในecryptfsบางรุ่นและเรียกผู้จัดการเพียงแค่ตั้งค่าตัวแปรบางอย่างที่ถูกนำมาใช้ในภายหลังโดยแนวคิด mount.any วิธีการทำให้สิ่งนี้เป็นแบบอัตโนมัติเพื่อให้ฉันสามารถเมานต์โฟลเดอร์หลังจากรีบูตแต่ละครั้งหรือไม่
ulkas

1
keyctl link @u @sเป็นทางออกที่ง่ายมากสำหรับฉัน เครดิตไปที่นี่: bugs.debian.org/cgi-bin/bugreport.cgi?bug=870126
sup

แม้ว่าปัญหาของฉันอาจแตกต่างจากโปสเตอร์ต้นฉบับ
sup

1

สำหรับผู้อ่านในอนาคตของคำถาม & คำตอบ: อาการที่ชัดเจนนี้อาจเกิดจากสาเหตุที่แตกต่างกัน อาการดูเหมือนว่า:

INFO: Found [/home/.ecryptfs/frankenmint/.Private].
Try to recover this directory? [Y/n]: y
INFO: Found your wrapped-passphrase
Do you know your LOGIN passphrase? [Y/n] y
INFO: Enter your LOGIN passphrase...
Passphrase: 
Inserted auth tok with sig [979c6cdf80d2e44d] into the user session keyring
mount: No such file or directory
ERROR: Failed to mount private data at [/tmp/ecryptfs.Hy3BV96c].

ในกรณีของฉันคำตอบนี้ถือกุญแจไขปัญหา ปัญหาคือฉันพยายามทำทุกอย่างจาก SSH จากระยะไกลในเซสชัน Tmux ซึ่งถูก จำกัด โดยบรรทัดต่อไปนี้ใน/etc/pam.d/sshd:

session    optional     pam_keyinit.so force revoke

คำตอบดังกล่าวแนะนำให้แสดงความคิดเห็นในบรรทัดนั้นแล้วลองอีกครั้งในเซสชันใหม่

วิธีแก้ปัญหาง่ายๆที่ทำงานในกรณีของฉันคือการทำในสถานที่หลีกเลี่ยง SSH และ Tmux ทั้งหมด วิธีแก้ปัญหาที่ซับซ้อนมากขึ้น (ซึ่งฉันยังไม่ได้ตรวจสอบ) คือการใช้สิ่งต่าง ๆ เช่นconspyเพื่อเข้าถึงเทอร์มินัลไม่ จำกัด จากระยะไกล

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