fstab के साथ sshfs: सहकर्मी द्वारा कनेक्शन रीसेट


10

मैं अपने लैपटॉप (Ubuntu 13.04) को SSHFS के माध्यम से अपने पीसी (लुबंटू 13.04) हार्ड ड्राइव तक पहुंचने की अनुमति देने की कोशिश कर रहा हूं। मैं कनेक्ट करने के लिए RSA कुंजियों का उपयोग कर रहा हूं।

यह पूरी तरह से ठीक काम करता है अगर मैं इस टर्मिनल में टाइप करता हूं:

sshfs my-PC:/a_folder /media/a_folder

लेकिन मैं चाहूंगा कि जब मैं अपना लैपटॉप बूट करूं तो यह अपने आप माउंट हो जाए। इसलिए मैंने खुद को फ्यूज ग्रुप में जोड़ा:

sudo adduser mynickname fuse

और मैंने अपनी fstab फ़ाइल में निम्न पंक्ति जोड़ी:

sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse defaults,idmap=user,_netdev 0 0

जब मैं लैपटॉप को बूट करता हूं, तो a_folder उपकरणों की सूची में दिखाई देता है, लेकिन माउंट नहीं किया जाता है। जब मैं इसे Nautilus के माध्यम से एक्सेस करने का प्रयास करता हूं, तो यह निम्नलिखित त्रुटि प्रदर्शित करता है:

mount: only root can mount sshfs#mynickname@my-PC:/a_folder on /media/a_folder

अगर मैं कोशिश करता हूं तो मुझे वही त्रुटि मिलती है

mount /media/a_folder

एक टर्मिनल में।

अगर मैं कोशिश करूँ

sudo mount /media/a_folder

मुझे मिला

read: Connection reset by peer

मैंने fstab प्रविष्टि में एक विकल्प के रूप में "allow_other" जोड़ने की कोशिश की, और /etc/fuse.conf में संबंधित पंक्ति को अनियोजित किया, लेकिन यह कुछ भी नहीं बदला।

उपयोगकर्ता "mynickname" फ़ोल्डर / मीडिया / a_folder का स्वामी है और इसमें rwx अनुमतियां हैं।

मैंने इंटरनेट पर कई समान मुद्दों वाले लोगों के बारे में कई सूत्र देखे, लेकिन अभी तक कुछ भी काम नहीं किया। आमतौर पर, लोग भी नहीं कर सकते

sshfs my-PC:/a_folder /media/a_folder

बिना किसी त्रुटि के, जबकि यह मेरे लैपटॉप पर ठीक काम करता है।

किसी भी अंतर्दृष्टि और सुझावों की बहुत सराहना की जाएगी! धन्यवाद।

EDIT: मैंने इस मुद्दे को कुछ समय पहले हल किया था, लेकिन मैं इस पोस्ट को अपडेट करना भूल गया। तो यहाँ है जो मेरे fstab में है:

sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse noauto,_netdev,idmap=user,user,default_permissions 0 0

यदि मुझे याद हो तो जोड़ने का मुख्य विकल्प default_permissions था। मुझे mynickname को उस समूह में जोड़ना था जो मेरे पीसी पर / a_folder / से संबंधित है।

fstab  sshfs 

जवाबों:


8

आपके द्वारा अनुभव की जा रही समस्या यह है कि आपके सामान्य उपयोगकर्ता के पास आपकी पहचान फ़ाइल के लिए एक सही सेटअप है, जबकि रूट उपयोगकर्ता को पता नहीं है कि उपयोग करने के लिए ssh कुंजी क्या है।

कनेक्ट करने का प्रयास करते समय आप किस पहचान फ़ाइल / ssh कुंजी का उपयोग करते हैं, यह बताकर आप इसे ठीक कर सकते हैं:

sshfs#user@host:/mnt/whatever/ /mnt/whatever/        fuse    user,_netdev,reconnect,uid=1000,gid=1000,IdentityFile=/home/USER/.ssh/KEYFILE,idmap=user,allow_other  0   2

आपके उत्तर के लिए धन्यवाद। मैंने पहले से ही IdentityFile विकल्प के साथ प्रयास किया, लेकिन मैंने uid और gid विकल्पों को निर्दिष्ट नहीं किया, इसलिए मैं कोशिश करूँगा!

तकनीकी रूप से, sudoयदि FUSE माउंट के लिए सब कुछ सही तरीके से सेट किया गया है , तो आपको उपयोग करने की आवश्यकता नहीं होनी चाहिए । इसके अलावा, यूआईडी / जीआईडी ​​सेटिंग्स को केवल उसी को प्रभावित करना चाहिए जिसके पास आपके सिस्टम पर फ़ाइलों के लिए उपयोगकर्ता का अधिकार है।
EarthmeLon

तो मैं सिर्फ एक ही समय में uid, gid, IdentityFile, allow_other, उन सभी विकल्पों के साथ कोशिश की, और दुर्भाग्य से यह अभी भी काम नहीं करता है। फिर भी वही त्रुटि।

क्या आप इस बात का एक नमूना पोस्ट करने का मन करेंगे कि आपने इसे कैसे लिखा है? आपको अपनी निजी कुंजी की ओर इशारा करना चाहिए, न कि आपकी सार्वजनिक कुंजी को।
अर्थमून

1
इसलिए दोनों विधियां काम नहीं आईं। फिर भी वही त्रुटि। कॉन्फ़िगरेशन फ़ाइल के लिए, मैंने सही होस्ट के लिए निर्दिष्ट करके कोशिश की: उपयोगकर्ता, होस्टनाम (आईपी और नाम दोनों की कोशिश की), पहचान। लेकिन यह भी काम नहीं किया। तो अब मैं जो कर रहा हूं वह यह है कि मैंने स्टार्टअप एप्लिकेशन में कमांड sshfs my-PC: / a_folder / media / a_folder जोड़ा है। यह fstab का उपयोग करने के रूप में साफ नहीं है, लेकिन यह अभी के लिए पर्याप्त रूप से काम करता है। आपकी मदद और आपके सुझावों के लिए धन्यवाद! यदि आप कुछ और सोचते हैं, तो बेझिझक साझा करें, मैं इसकी सराहना करूंगा!

4

वास्तविक डिबग आउटपुट प्राप्त करने के लिए आपको माउंट में दोनों sshfs_debugऔर debugविकल्पों को जोड़ना होगा :

sshfs#mynickname@my-PC:/a_folder /media/a_folder fuse defaults,idmap=user,_netdev,debug,sshfs_debug 0 0

इसके साथ आपको बहुत सी डीबग जानकारी मिल जाएगी जिसमें आप मदद कर सकते हैं:

$ sudo mount -a
SSHFS version 2.5
FUSE library version: 2.9.2
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-2> <user@box> <-s> <sftp>
user@box's password: 
Server version: 3
Extension: posix-rename@openssh.com <1>
Extension: statvfs@openssh.com <2>
Extension: fstatvfs@openssh.com <2>
Extension: hardlink@openssh.com <1>
Extension: fsync@openssh.com <1>
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 0
INIT: 7.22
flags=0x0000f7fb
max_readahead=0x00020000
remote_uid = 1001
   INIT: 7.19
   flags=0x00000011
   max_readahead=0x00020000
   max_write=0x00020000
   max_background=0
   congestion_threshold=0
   unique: 1, success, outsize: 40
unique: 2, opcode: STATFS (17), nodeid: 1, insize: 40, pid: 2771
unique: 3, opcode: LOOKUP (1), nodeid: 1, insize: 47, pid: 3371

मेरे मामले में मुझे पता चला कि मेरी मशीन केवल सूचीबद्ध थी .ssh/config, इसलिए यह रूट के लिए अनार्य थी।

और बीटीडब्ल्यू, आपको यूआईडी और जीआईडी ​​सेट करने की आवश्यकता है, क्योंकि idmap=userकेवल वर्तमान उपयोगकर्ता के लिए काम करने लगता है, जो इस मामले में मूल है।


3

यह समस्या तब भी हो सकती है जब ssh की होस्ट कुंजी बदल जाती है।

सर्वर से ssh (जैसे ssh username@hostIP) से जुड़ने का प्रयास करें । यदि निम्न त्रुटि दिखाई देती है:

 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!    @
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

पुरानी कुंजी को हटाने के लिए त्रुटि संदेश के निर्देशों का पालन करें और ssh के माध्यम से फिर से कनेक्ट करने का प्रयास करें। यदि त्रुटि अधिक नहीं दिखाई देती है, तो sshfs कनेक्शन को काम करना चाहिए।


"ssh के माध्यम से सर्वर से कनेक्ट करने का प्रयास करें" यदि आप निर्देशिका को रूट के रूप में बढ़ा रहे हैं (जो कि ऑटोमोटिविंग के दौरान होता है) तो इसे रूट के रूप में करना सुनिश्चित करें । उपयोगकर्ता की known_hostsफ़ाइल रूट की known_hostsफ़ाइल से भिन्न हो सकती है ।
शेल्वैकु

0

पूर्ण प्रकटीकरण: पुराने स्कूल geek, लेकिन ब्रांड linux / open source world के लिए नया है

सबसे पहले, मैं अभी भी पासवर्ड प्रमाणीकरण का उपयोग कर रहा हूं क्योंकि मैं अभी तक आरएसए कुंजियों के साथ पर्याप्त समझदार नहीं हूं। हालांकि यह सूची में सबसे ऊपर है।

प्रासंगिक सेट-अप जानकारी: VMWare संलयन के साथ मैकबुक प्रो का उपयोग करना, जिस पर मेरे पास Ubuntu सर्वर 10.04 LTS है। लगभग सभी सर्वर इंटरैक्शन के लिए मैक के टर्मिनल और एसएसएच पर निर्भर

Drupal इंस्टॉल करने के बाद, मैं एक पूर्व स्नैपशॉट पर वापस लुढ़का और अचानक एक कमांड निष्पादित करने में असमर्थ था, जो मेरे पास कुछ समय पहले था: sshfs -o idmap=user -o allow_other user@mac.home:/Users/<username>/Documents ~/mountpoint

मुद्दा यह है कि चाबियाँ सिंक से बाहर हो गईं। मुझे नहीं पता कि मुझे वास्तव में अपने होस्ट और सर्वर दोनों पर ऐसा करने की आवश्यकता है, लेकिन मैंने पहले ज्ञात_होस्ट्स फ़ाइल का बैक-अप बनाकर सभी स्थानीय कुंजियों को हटा दिया, फिर प्रविष्टियों को हटाने के लिए ज्ञात_होस्ट्स फ़ाइल का संपादन किया ।
Mac पर, यह फ़ाइल निम्न /Users/<username>/.ssh/known_hosts
पर स्थित थी: Ubuntu पर, यह फ़ाइल यहाँ पर स्थित है:/home/<username>/.ssh/known_hosts

तो, संक्षेप में, सभी ने मेरे मैक टर्मिनल से प्रदर्शन किया, उबंटू सर्वर शुरू करने के बाद:

cp /Users/<username>/.ssh/known_hosts /Users/<username>/.ssh/known_hosts.old
nano  /Users/<username>/.ssh/known_hosts
  # remove extra entries, save file
ssh <username>@ubuntu_server
cp /home/<username>/.ssh/known_hosts, /home/<username>/.ssh/known_hosts.old
nano /home/<username>/.ssh/known_hosts
  # remove extra entries, save file

प्रत्येक सिस्टम में पहले SSH के बाद, SSH मुझे RSA कुंजियाँ जोड़ने की अनुमति देता है और उसके बाद सभी काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.