sshfs बूट पर स्वचालित रूप से नहीं बढ़ रहा है, / etc / fstab कॉन्फ़िगरेशन के बावजूद


24

कुछ उबंटू (13.04) वर्कस्टेशन स्थापित करते हुए, मैं एक दूरस्थ फाइल सिस्टम माउंटेड (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
    

मेरी समझ से:

  • ऑटो : स्पष्ट रूप से रिमोट एफएस को बूट पर माउंट करने के लिए कह रहा है
  • _netdev : माउंट करने का प्रयास करने से पहले इंटरफ़ेस की प्रतीक्षा करें
  • उपयोगकर्ता : किसी भी उपयोगकर्ता को इस विशिष्ट दूरस्थ स्थान को माउंट करने के लिए कहने की अनुमति दें (रूट उपयोगकर्ता के परिप्रेक्ष्य में बेकार है जो इसे बूट पर स्वचालित रूप से बढ़ते हैं)
  • allow_other : आरोहित fs तक पहुँचने के लिए किसी भी उपयोगकर्ता (फ्यूज समूह में?) को अनुमति देगा
  • IdentityFile : दूरस्थ मशीन के /home/someuser/.ssh/authorized_key में जोड़े गए सार्वजनिक कुंजी के साथ जोड़े गए निजी कुंजी को इंगित करता है।
  • पुन : कनेक्ट करें : निश्चित नहीं ... कनेक्शन खो जाने पर पुन: कनेक्ट करने का प्रयास करेगा?

समस्या

  • बूट होने पर, मैं someuser के साथ लॉग इन करता हूं , एक टर्मिनल को फायर करता हूं , और / मीडिया / रिमोट_डिअर खाली होता है।

  • लेकिन एक ही उपयोगकर्ता (या रूट) से, मैं इसे केवल टाइप कर सकता हूं:

    mount sshfs#someuser@remote.com:/remote_dir
    

    यदि मैं एक फ़ाइल ब्राउज़र में रिमोट_डिर पर क्लिक करता हूं, तो यह ऑटो-जादुई रूप से माउंट है।

क्या गायब हो सकता है के बारे में कोई सुराग?


कभी यह पता लगा? मैं एक ही मुद्दे पर एक Ubuntu 14.04 64-बिट मशीन में चल रहा हूं।
glibdud

इस सवाल की लोकप्रियता को देखते हुए, उत्तरों की संख्या की तुलना में, मैंने फैस्टैब दृष्टिकोण को छोड़ दिया। मैंने बुलेट को काटने का फैसला किया और बड़ी तस्वीर समस्या को संबोधित करते हुए ऑटोमाउंट का उपयोग करना सीख लिया। मेरे अनुभव से यह "सही विकल्प" था। ऑटोमाउंट का एक अच्छा परिचय उबंटू विकी पर पाया जा सकता है ।
विज्ञापन एन

जवाबों:


18

वनसीक (जहां ऑटोमाउंट ने ठीक काम किया) से प्रिसिस में अपग्रेड करने के बाद मैंने ठीक उसी समस्या का अनुभव किया।

मेरे लिए क्या समस्या हल हो गई है delay_connect विकल्प जोड़ रहा था । इसके अलावा, मैं Oneiric के बाद से पहले से ही "workaround = rename" विकल्प का उपयोग कर रहा हूं। यह निश्चित नहीं है कि आज भी इसकी आवश्यकता है, लेकिन कम से कम यह चोट नहीं लगती है।

मेरी पूरी / 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

आपको स्पष्ट रूप से उपयोगकर्ता / समूह आईडी को अपने स्वयं के वातावरण में अनुकूलित करने की आवश्यकता होगी।


1
मेरे लिए बिना वर्कअराउंड के नाम से काम करना = उसका नाम बदलना जहाँ पहले काम नहीं किया था। इसलिए मेरा एकमात्र परिवर्तन देरी_ विकल्प को जोड़ रहा था, जिसने निश्चित रूप से यहाँ मदद की! इसके लिए शुक्रिया। जरा सोचिए कि _netdev यहां पर्याप्त क्यों नहीं है ...
निकोलस

1
यह मेरे लिए भी पूरी तरह से काम करता है। @ निकोलस, मेरा मानना _netdevहै कि टोनी के जवाब में मुद्दा समझाया गया है। नेटवर्क ऊपर हो सकता है, लेकिन यह अभी भी होस्ट को हल नहीं कर सकता है। जाहिर है, एक आईपी पते का उपयोग करने से यह हल हो जाएगा, लेकिन कौन अपने आईपी पते को अपने fstab में चाहता है?
शुभ अंक

इसके लायक क्या है, किसी भी तरह जब मैं इसे परमाणु में चिपका देता हूं, तो उसने अदृश्य पात्रों को उठा लिया, जिसने इसे तोड़ दिया। मैं उन को दूर करने के लिए किया था
जोनाथन

4
यह ठीक है, लेकिन फिर मुझे मिलता है: ls / backup: इनपुट / आउटपुट एरर
जोनाथन

'देरी_कनेक्ट, वर्कअराउंड = नाम बदलना' को जोड़कर मेरे लिए आर्क लिनक्स पर काम किया। धन्यवाद!
अनसिस्टमऑवरलोड

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 माउंट विकल्प लिनक्स कर्नेल में एक अनसुलझे सुरक्षा बग को उजागर करता है : अगर default_permissions माउंट विकल्प का उपयोग allow_other के साथ नहीं किया जाता है, तो निर्देशिका प्रविष्टि के लिए फ़ाइल सिस्टम द्वारा किए गए पहले अनुमति चेक के परिणाम बाद के एक्सेस के लिए फिर से उपयोग किए जाएंगे। जब तक एक्सेस किए गए प्रविष्टि का इनकोड कर्नेल कैश में मौजूद है - भले ही अनुमतियाँ बदल गई हों, और भले ही बाद की पहुंच किसी अन्य उपयोगकर्ता द्वारा बनाई गई हो।
मोनिका सेलियो के लिए माउंटेनएक्स

0

एक ही समस्या थी, मुझे लगता है कि आप noauto होने के लिए ऑटो की जरूरत है। यह बूट पर माउंट नहीं होना चाहिए, यह माउंट होना चाहिए जब एथ ऊपर है


6
मुझे लगता है कि "केवल तभी माउंट करें जब नेटवर्क तैयार हो" पहले से ही उपयोग करने के लिए कहा जाता है _netdev, और noautoइसे बदलने से बूट पर माउंट करने में असमर्थ हो जाएगा (केवल स्पष्ट रूप से माउंट कमांड का उपयोग करते समय )
विज्ञापन एन

0

यदि आप इसे आधिकारिक DNS सर्वर से माउंट करते हैं /etc/fstabऔर आपके दूरस्थ SFTP सर्वर का होस्ट नाम इस DNS सर्वर द्वारा प्रदान किया जाता है, तो आप निश्चित रूप से कनेक्ट करने में सक्षम नहीं होंगे क्योंकि होस्ट नाम अभी तक हल नहीं किया जा सकता है। या तो DNS सर्वर को माउंट करने का प्रयास करते समय चलना होगा या आपको अपने रिमोट सर्वर के आईपी पते को प्राप्त करने के लिए एक वैकल्पिक तरीका खोजना होगा।

यदि यह मामला है, तो आप निम्न में से कोई भी समाधान चुन सकते हैं:

  • delay_connectविकल्प जोड़ें तो यह बूट अनुक्रम को जारी रखने की अनुमति देगा और बूट अनुक्रम के DNS सर्वर शुरू होने के बाद इसे कनेक्ट करेगा।
  • /etc/hostsउपयुक्त IP पते के साथ अपने स्थानीय SFTP सर्वर के होस्ट नाम को अपनी स्थानीय फ़ाइल में जोड़ें ।
  • fstabहोस्ट नाम के बजाय अपने दूरस्थ SFTP सर्वर के IP पते का उपयोग करें ।

क्या आप delay_connectविकल्प पर विस्तार कर सकते हैं ? यह कहाँ जोड़ा गया है? इसके बारे में कुछ और जानकारी शामिल करने के लिए अपने प्रश्न को संपादित करें।
एजेफेरिस

आप इसे fstab ऑप्शन लिस्ट में जोड़ते हैं: sshfs # user @ host: / रिमोट / mnt / लोकल फ्यूज देरी_कनेक्ट, uid = 1000, gid = 100, umask = 0, allow_other 0 0
टोनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.