sshfs ไม่ได้ติดตั้งโดยอัตโนมัติเมื่อบูตแม้จะมีการกำหนดค่า / etc / fstab


24

การตั้งค่าเวิร์กสเตชัน Ubuntu (13.04) บางตัวฉันพยายามติดตั้งระบบไฟล์ระยะไกล (over ssh)

การกำหนดค่าปัจจุบัน

  • ฉันสร้างผู้ใช้someuserและเพิ่มไปยังฟิวส์กลุ่ม

  • รายการfstabของฉันอ่านเหมือน:

    sshfs#someuser@remote.com:/remote_dir  /media/remote_dir/   fuse    auto,_netdev,port=22,user,allow_other,noatime,follow_symlinks,IdentityFile=/home/someuser/.ssh/id_rsa,reconnect     0       0
    

จากความเข้าใจของฉัน:

  • auto : กำลังขอให้รีโมต fs อย่างชัดเจนติดตั้งตอนบูต
  • _netdev : รอให้อินเทอร์เฟซหมดก่อนที่จะทำการเมานต์
  • ผู้ใช้ : อนุญาตให้ผู้ใช้ใด ๆ ขอให้ติดตั้งตำแหน่งรีโมตเฉพาะนี้ (ไร้ประโยชน์ในมุมมองของผู้ใช้รูทโดยอัตโนมัติเมื่อทำการบูท)
  • allow_other : จะอนุญาตให้ผู้ใช้ (ในกลุ่มฟิวส์?) เข้าถึง fs ที่เมานต์
  • IdentityFile : ชี้ไปที่คีย์ส่วนตัวที่จับคู่กับคีย์สาธารณะที่เพิ่มใน/home/someuser/.ssh/authorized_keyของเครื่องระยะไกล
  • เชื่อมต่อใหม่ : ไม่แน่ใจ ... จะพยายามเชื่อมต่อใหม่หากการเชื่อมต่อขาดหายไปหรือไม่

ปัญหา

  • ที่บูตฉันเข้าสู่ระบบด้วยsomeuserเปิดไฟหน้าจอและ/ media / remote_dirว่างเปล่า

  • แต่จากผู้ใช้คนเดียวกัน (หรือรูท) ฉันสามารถเมานต์ได้เพียงพิมพ์:

    mount sshfs#someuser@remote.com:/remote_dir
    

    นอกจากนี้ยังติดตั้งอัตโนมัติอย่างน่าอัศจรรย์หากฉันคลิกที่remote_dirในไฟล์เบราว์เซอร์

เบาะแสเกี่ยวกับสิ่งที่อาจหายไป?


เคยคิดออกไหม ฉันพบปัญหาเดียวกันบนเครื่อง Ubuntu 14.04 64 บิต
glibdud

เมื่อเห็นความนิยมของคำถามนี้เมื่อเปรียบเทียบกับจำนวนคำตอบแล้วฉันก็เลิกใช้ fstab ฉันตัดสินใจกัดกระสุนและเรียนรู้วิธีใช้ Automount เพื่อจัดการกับปัญหาภาพใหญ่ จากประสบการณ์ของฉันมันเป็น "ตัวเลือกที่เหมาะสม" แนะนำที่ดีที่จะ Automount สามารถพบได้ในวิกิพีเดียอูบุนตู
โฆษณา N

คำตอบ:


18

ฉันประสบปัญหาเดียวกันที่แน่นอนหลังจากอัปเกรดจาก Oneiric (ซึ่งการทำงานอัตโนมัติทำงานได้ดี) เป็นแม่นยำ

สิ่งที่แก้ไขปัญหาสำหรับฉันคือการเพิ่มตัวเลือกdelay_connect นอกจากนี้ฉันใช้ตัวเลือก "workaround = rename" ก่อนหน้านี้แล้วตั้งแต่ Oneiric times ไม่แน่ใจว่าวันนี้ยังคงต้องการหรือไม่ แต่อย่างน้อยก็ดูเหมือนจะไม่เจ็บ

บรรทัดเต็ม / etc / fstab ของฉันคือ:

sshfs#user@host:/remote/dir /local/dir fuse delay_connect,idmap=user,uid=1000,gid=1000,umask=0,allow_other,_netdev,workaround=rename 0 0

เห็นได้ชัดว่าคุณจะต้องปรับ ID ผู้ใช้ / กลุ่มให้เข้ากับสภาพแวดล้อมของคุณเอง


1
ทำงานให้ฉันโดยไม่มีวิธีแก้ไข = เปลี่ยนชื่อที่ไม่เคยทำงานมาก่อน ดังนั้นการเปลี่ยนแปลงเพียงอย่างเดียวของฉันคือการเพิ่มตัวเลือก delay_connect ซึ่งช่วยได้อย่างแน่นอนที่นี่! ขอบคุณสำหรับสิ่งนี้. เพียงแค่สงสัยว่าทำไม _netdev ไม่เพียงพอที่นี่ ...
นิโคลัส

1
มันก็ใช้ได้ดีสำหรับฉันเช่นกัน @ Nicolas ฉันเชื่อว่า_netdevปัญหาอธิบายไว้ในคำตอบของ Tony เครือข่ายอาจใช้งานได้ แต่ก็ยังไม่สามารถแก้ไขโฮสต์ได้ เห็นได้ชัดว่าการใช้ที่อยู่ IP จะแก้ปัญหานั้น แต่ใครต้องการที่อยู่ IP ใน fstab ของพวกเขา
Auspex

สำหรับสิ่งที่คุ้มค่าอย่างใดเมื่อฉันคัดลอกวางลงในอะตอมมันหยิบตัวละครที่มองไม่เห็นที่ทำลายมัน ฉันต้องลบออก
Jonathan

4
มันเมาแล้วก็โอเค แต่แล้วฉันจะได้รับ: ls / backup: ข้อผิดพลาดอินพุต / เอาท์พุต
Jonathan

การเพิ่ม 'delay_connect, workaround = rename' ได้ผลสำหรับฉันบน Arch Linux ขอบคุณ!
aSystemOverload

1

นอกจากนี้เพื่อเติมเต็มความคิดเห็นก่อนหน้านี้ทั้งหมด

  1. ตรวจสอบให้แน่ใจว่าคุณอนุญาตให้ผู้ใช้ที่ไม่ใช่รูทระบุallow_otherตัวเลือกเมานท์/etc/fuse.conf

  2. ตรวจสอบให้แน่ใจว่าคุณใช้เมานต์ sshfs แต่ละตัวอย่างน้อยหนึ่งครั้งในขณะที่รูทเพื่อให้ลายเซ็นของโฮสต์ถูกเพิ่มลงใน~/.ssh/known_hostsไฟล์

    sshfs [user]@[host]:[remote_path] [local_path] -o allow_other,IdentityFile=[path_to_id_rsa]
    

ตัวเลือก allow_other mount exposes บั๊กความปลอดภัยที่ไม่ได้รับการแก้ไขในเคอร์เนล Linux: หากตัวเลือก default_permissions mount ไม่ได้ใช้พร้อมกับ allow_other ผลลัพธ์ของการตรวจสอบสิทธิ์ครั้งแรกที่ดำเนินการโดยระบบไฟล์สำหรับรายการไดเรกทอรีจะถูกนำมาใช้อีกครั้ง ตราบใดที่ไอโหนดของรายการที่เข้าถึงนั้นมีอยู่ในเคอร์เนลแคช - แม้ว่าการอนุญาตจะมีการเปลี่ยนแปลงตั้งแต่นั้นและแม้ว่าการเข้าถึงครั้งต่อ ๆ ไปจะทำโดยผู้ใช้รายอื่น
MountainX สำหรับ Monica Cellio

0

มีปัญหาเดียวกันฉันคิดว่าคุณต้องการรถยนต์เป็น noauto มันไม่ควรเมานต์บูทก็ควรจะเมาท์เมื่อ eth ขึ้น


6
ฉันคิดว่า "เมาท์เมื่อเครือข่ายพร้อม" ขอให้ใช้_netdevแล้วและการเปลี่ยนแปลงด้วยnoautoจะทำให้ไม่สามารถเมานต์ตอนบูตได้ (เฉพาะเมื่อใช้คำสั่งเมานต์เท่านั้น )
โฆษณา N

0

หากคุณจะเชื่อมต่อจากเซิร์ฟเวอร์ DNS ที่มีสิทธิ์/etc/fstabและชื่อโฮสต์ของเซิร์ฟเวอร์ SFTP ระยะไกลของคุณนั้นมาจากเซิร์ฟเวอร์ DNS นี้คุณจะไม่สามารถเชื่อมต่อได้อย่างแน่นอนเพราะชื่อโฮสต์ยังไม่สามารถแก้ไขได้ เซิร์ฟเวอร์ DNS ต้องทำงานในขณะที่พยายามเชื่อมต่อหรือคุณต้องหาวิธีอื่นในการรับที่อยู่ IP ของเซิร์ฟเวอร์ระยะไกลของคุณ

หากเป็นกรณีนี้คุณสามารถเลือกวิธีแก้ไขปัญหาต่อไปนี้:

  • เพิ่มdelay_connectตัวเลือกเพื่อให้ลำดับการบู๊ตดำเนินต่อและหลังจากลำดับการบู๊ตเริ่มต้นเซิร์ฟเวอร์ DNS จะทำการเชื่อมต่อ
  • เพิ่มชื่อโฮสต์เซิร์ฟเวอร์ SFTP ระยะไกลของคุณไปยัง/etc/hostsไฟล์ในเครื่องของคุณด้วยที่อยู่ IP ที่เหมาะสม
  • ใช้ที่อยู่ IP ของเซิร์ฟเวอร์ SFTP ระยะไกลในfstabชื่อโฮสต์แทน

คุณสามารถขยายdelay_connectตัวเลือกได้หรือไม่? มันเพิ่มไปยังที่ไหน? แก้ไขคำถามของคุณเพื่อรวมข้อมูลเพิ่มเติมเกี่ยวกับมัน
AJefferiss

คุณเพิ่มในรายการตัวเลือก fstab: sshfs # user @ host: / remote / mnt / local fuse delay_connect, uid = 1000, gid = 100, umask = 0, อนุญาต _ 0 0
Tony
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.