sshfs हमेशा fstab में पासवर्ड पूछते हैं?


20

मैं निम्नलिखित पंक्ति के साथ / etc / fstab में sshfs माउंट दर्ज करने का प्रयास कर रहा हूं:

sshfs#oli@192.168.0.2:/media/usb0 /media/ExtHD fuse     defaults,nonempty,allow_other 0 0

ताकि यह वॉल्यूम बूट पर मुहिम शुरू हो। बूट करने के बाद, कुछ भी नहीं होता है, लेकिन जब मैं कमांड sudo माउंट -a का उपयोग करता हूं, तो मुझे हमेशा पासवर्ड के लिए संकेत दिया जाता है। मैंने SSH कीज़ की स्थापना की है और उन्हें 192.168.0.2 पर कंप्यूटर पर हस्तांतरित कर दिया है, और बिना किसी पासवर्ड के नियमित ssh में लॉग इन कर सकता है। मैं अपना पासवर्ड मांगने से फ्यूज को कैसे रोक सकता हूं ताकि वॉल्यूम को बूट समय पर स्वचालित रूप से माउंट किया जा सके?

यदि यह बिल्कुल मदद करता है, तो मैं डेक्सिन चलाने वाले होम सर्वर को आर्क लिनक्स चलाने वाले लैपटॉप से ​​कनेक्ट करने का प्रयास कर रहा हूं। धन्यवाद

जवाबों:


13

कुंजी-आधारित प्रमाणीकरण केवल तभी काम sshकर सकता है जब प्रक्रिया आपकी कुंजी पा सकती है। आप संभवतः अपने घर निर्देशिका में अपनी कुंजी है; लेकिन आपने कभी नहीं बताया sshfsकि चाबी की तलाश कहां है। बूट समय पर, यह rootसभी फाइल सिस्टम को बढ़ाना होगा , इसलिए कुंजी को या तो अंदर /root/.sshया संदर्भित होना चाहिए /root/.ssh/config

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

ssh-add ~/.ssh/name_of_key.id_rsa
sshfs homeserver:/media/usb0 ~/exthd

homeserverअपने नाम से एक उपनाम रखें ~/.ssh/config:

Host homeserver
HostName 192.168.0.2
User oli

आह, यह करने का एक बेहतर तरीका है, मैंने इसे अपनी लॉगिन स्क्रिप्ट में डालने के लिए नहीं सोचा था। धन्यवाद!
सेमिनार

~आरोह बिंदु का उपयोग करके सावधान रहें । यदि आप टर्मिनल के बजाय कमांड को चलाने के लिए पैनल पर लॉन्चर आइकन का उपयोग कर रहे हैं, तो ~इसका मूल्यांकन नहीं किया जा सकता है /home/और कमांड विफल हो जाएगा।
निक

@ अगर आप GUI का उपयोग कर रहे हैं, तो इसमें एक उपकरण हो सकता है जो ऑटोमेटिंग को समर्पित हो। यदि आप मेरे उत्तर का अनुसरण करते हैं, तो आप दो कमांड को शेल स्क्रिप्ट में डाल सकते हैं; लॉन्चर आइकन उस स्क्रिप्ट को चलाएगा।
गिल्स एसओ-

10

मैं एक मानक उपयोगकर्ता के रूप में निम्न सिंटैक्स का उपयोग करके fshab को Ubuntu 14.04 के साथ माउंट करने में सक्षम था (CAPS में कुछ भी नोट करें आपके लिए एक चर है):

USER@HOST:/REMOTE_DIR /LOCAL_DIR fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID,gid=USER_GID 0 0

यह यहां मिली जानकारी का एक संयोजन है। /superuser/669287/automount-sshfs-use-fstab-without-mount-a और delay_connect को यहां से जोड़कर https://ububuntu.com/questions/ 326977 / sshfs-is-not-बढ़ते-स्वचालित-पर-बूट-के बावजूद- fstab- कॉन्फ़िगरेशन

मैंने अपने USER_ID और USER_GID को प्राप्त करने के लिए इस ट्यूटोरियल का उपयोग किया: https://kb.iu.edu/data/aditf.html

यूनिक्स में उपयोगकर्ता का यूआईडी या जीआईडी ​​खोजने के लिए, आईडी कमांड का उपयोग करें। यूनिक्स प्रॉम्प्ट पर एक विशिष्ट उपयोगकर्ता का यूआईडी खोजने के लिए, दर्ज करें:

id -u username

उपयोगकर्ता नाम को उचित उपयोगकर्ता नाम से बदलें। उपयोगकर्ता के GID को खोजने के लिए, Unix प्रॉम्प्ट पर, दर्ज करें:

id -g username

इसके अलावा, यदि आप एक पूर्ण ट्यूटोरियल चाहते हैं, तो इसे https://www.variux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04/ पर पोस्ट किया जाएगा।


वह लिंक: varux.com/blog/?p=161 लगता है अब काम नहीं कर रहा ...
क्रिस्चियन केसुत्त

@ChristianMuggli आपकी टिप्पणी के लिए धन्यवाद। मैंने पूर्ण ट्यूटोरियल पता अपडेट किया है। मैंने हालांकि लंबे समय में ट्यूटोरियल का परीक्षण नहीं किया है। varux.com/sshfs-automount-at-boot-with-fstab-on-ubuntu-14-04
varuxDavid

5

मुझे भी यही समस्या थी।

मैं पहले ssh-keygenऔर फिर के माध्यम से ssh कुंजी सेटअप किया थाssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.100

ssh ने मुझसे पासवर्ड मांगे बिना ठीक काम किया इसलिए मैं उलझन में था कि sshfs अभी भी पासवर्ड क्यों चाहता है ...

यानी,

ssh root@192.168.0.100 

ठीक है, हालांकि sshfs ने तब भी पासवर्ड मांगा जब मैंने टाइप किया

sudo sshfs root@192.168.0.100:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other

जैसा कि ऊपर गिलेश ने समझाया sshfsथा, आवश्यक कुंजी के लिए रूट निर्देशिका में देख रहा था।

इसलिए, मैंने इसे सिर्फ अपने होम फोल्डर के .ssh फोल्डर से रूट के .ssh फोल्डर में फाइल id_rsa और id_rsa.pub को कॉपी करके हल किया है।

cp /home/pi/.ssh/id_rsa /root/.ssh/
cp /home/pi/.ssh/id_rsa.pub /root/.ssh/

फिर, पासवर्ड के लिए मुझे परेशान किए बिना निम्नलिखित काम करना:

sudo sshfs root@192.168.0.100:/home/raspberry/Videos /home/pi/LinuxMintMountedFolder/ -o allow_other

यह वास्तव में सुरक्षा के दृष्टिकोण से बहुत बुरा है। बेहतर रूट के लिए कुंजी का एक अलग सेट बनाएं और इसे साथ ही अधिकृत_की में जोड़ें। आपको कभी भी निजी कुंजी को कॉपी नहीं करना चाहिए ।
क्रिश्चियन वुल्फ

3

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

उसके बाद, हमेशा की तरह, आपको माउंट बिंदु पर सार्वजनिक कुंजी को कॉपी करना होगा:

ssh-copy-id -i my_new_key.pub oli@192.168.0.2

और आपको इस कुंजी का उपयोग करने के लिए sshfs बताना होगा।

oli@192.168.0.2:/media/usb0 /media/ExtHD fuse     defaults,nonempty,allow_other,'IdentityFile /path/to/private/key' 0 0

2
SSHFS version 2.8 fuse: unknown option 'SSHOPT=IdentityFile /home/ravi/.ssh/id_boxy_rsa'
टॉम हेल

1
@ इसके बजाय टॉमहॉल ,SSHOPT='IdentityFile /path/to/private/key'बस है,IdentityFile /path/to/private/key
पुलकितसिंघल

2

मेरे लिए पूरी तरह से डेबियन 8.2 पर निम्न पंक्ति को जोड़ने का काम करता है fstab:

user@hostname:/path/to/localmountpoint /path/to/remotemountpoint fuse.sshfs _netdev,user,port=(if_not_22),idmap=user,transform_symlinks,identityfile=/home/user/.ssh/id_rsa,allow_other,default_permissions,uid=user_id,gid=group_id 0 0

होस्टनाम रिमोट सर्वर (उपयोगकर्ता से माउंट करने के लिए फ़ोल्डर) को इंगित करता है उपयोगकर्ता स्थानीय और दूरस्थ रूप से समान है। (आसान)

सुनिश्चित करें कि आपने दूरस्थ सर्वर (होस्टनाम) की कुंजी का ssh-keygenउपयोग ssh-copy-idकरने के लिए उपयोगकर्ता का उपयोग करने और उपयोग करने के लिए स्थानीय रूप से ssh कुंजी बनाई है ।

आप पा सकते हैं user_idऔर group_idस्थानीय सर्वर में उपयोगकर्ता के लिए /etc/passwd

यह भी सुनिश्चित करें कि उपयोगकर्ता ने फ़ोल्डर में अनुमतियों को पढ़ा / लिखा है path/to/localmountpoint


2

आप वास्तव में पासवर्ड की मदद से स्टार्टअप पर सार्वजनिक कुंजी के बिना SSHFS माउंट कर सकते हैं, लेकिन fstab के साथ नहीं।

आपको जो चाहिए वो है थोड़ी स्क्रिप्ट फ़ाइल और क्रॉन।

कृपया ध्यान रखें कि सार्वजनिक कुंजी हमेशा एक बेहतर विकल्प है। लेकिन कभी-कभी सार्वजनिक कुंजी काम नहीं करती है (मुझे लगता है कि खुद कुछ समय जारी किया है)। कृपया ध्यान दें कि स्क्रिप्ट फ़ाइल में सादा पासवर्ड होगा। इसके लिए आपको यह सुनिश्चित करना चाहिए कि केवल रूट को ही इस फाइल की कोई अनुमति है!

स्क्रिप्ट फ़ाइल इस तरह दिख सकती है (/root/automount.sh):

#!/bin/sh
if [ $(mount | grep 'user@server:/folder' | wc -l) -ne 1 ]
then
    echo 'PASSWORD' | sshfs user@server:/folder /mnt/mountpoint -o password_stdin,allow_other
    echo 'SSHFS has been mounted.'
else
    echo 'SSHFS is already mounted.'
fi

स्टार्टअप पर इसे चलाने के लिए आप crontab को रूट के रूप में उपयोग कर सकते हैं और इस लाइन को दर्ज कर सकते हैं:

@reboot /root/automount.sh

जैसा कि ऊपर कहा गया है, आपको यह सुनिश्चित करना चाहिए कि कोई भी फ़ाइल को नहीं पढ़ सकता है क्योंकि इसमें सादा पाठ पासवर्ड है!

-rwx------ 1 root root 526 Nov 21 12:57 automount.sh

अब तक, प्रत्येक रिबूट के बाद आपका सिस्टम क्रेडेंशियल का उपयोग करके स्वचालित रूप से SSHFS को माउंट करेगा।


0

वही समस्या थी। अंत में इसने या तो सरल फ्यूज को टाइप करने में मदद की, या (जो कि शायद अधिक है) विकल्प को रौंदने के लिए:

fuse reconnect,idmap=user,allow_other,default_permissions

जो अंत में मेरे लिए काम किया


0

यदि आप किसी ऐसे सर्वर से कनेक्ट करने का प्रयास कर रहे हैं जो कुंजियों का समर्थन नहीं करता है और आप अभी भी इसे स्वचालित बनाना चाहते हैं, तो आप sshpassअपने पासवर्ड को टाइप करने के लिए sshfsऔर यहां तक कि इसमें भी उपयोग कर सकते हैं fstab

उदाहरण के लिए, यदि आप इस में कुछ इसी तरह डालते हैं /etc/fstab:

sshfs#username@host:/  /mnt/here   fuse   auto,ssh_command=sshpass\040-f\040/root/.ssh/host.password\040ssh  0  0

फिर पासवर्ड निर्दिष्ट फ़ाइल नाम में डालें /etc/fstab:

echo 'secret' > /root/.ssh/host.password

सुनिश्चित करें कि आपने स्थापित किया है sshpass:

pacman -S sshpass  # if you're using Arch Linux

तो यह काम करना चाहिए:

mount /mnt/here

आपको sshइसकी कुंजी की पुष्टि करने के लिए पहले एक बार सर्वर की आवश्यकता हो सकती है , लेकिन इसके बाद इसे बिना किसी मैन्युअल इंटरैक्शन के साथ काम करना चाहिए, और इसमें autoध्वज के fstabसाथ बूट समय पर माउंट करना चाहिए, जिसमें पासवर्ड को मैन्युअल रूप से दर्ज करने की आवश्यकता नहीं है।

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