الرئيسية
» كيف
»
How to Mount a Remote SSHFS Directory Automatically at Boot in Debian
How to Mount a Remote SSHFS Directory Automatically at Boot in Debian
To mount a remote SSHFS directory automatically in Debian, configure noninteractive SSH authentication and add an SSHFS entry to /etc/fstab. With systemd, you can either connect during boot or activate an automount at boot and connect when the directory is first accessed. The second approach is useful when the remote server or network may be unavailable during startup.
This reference uses Debian 13 “trixie” documentation reviewed on October 9, 2026, including SSHFS 3.7.3 and systemd 257 documentation. The commands are configuration examples, not results from a tested deployment. Check your installed manuals if you use another release.
Choose when the SSHFS connection should start
Requirement
Configuration choice
Expected behavior
Make the directory available on demand after boot
Use x-systemd.automount
The first access triggers the remote mount.
Attempt the remote connection during boot
Omit x-systemd.automount
systemd starts the mount as part of startup.
Allow startup to continue if storage is unavailable
Use nofail
The mount is not a required boot dependency.
An application must wait for this storage
Add a dependency to that application’s service
The application starts only after the mount succeeds.
The main example uses an on-demand mount. The distinction matters: an active automount does not mean an SSHFS connection already exists. See Debian’s systemd automount manual for the relationship between the automount and its matching mount unit.
Before you start
The Debian client uses systemd and you have sudo access.
The remote account supports SFTP and can access the intended directory.
The client can reach the remote host, including any required VPN or jump host.
You have a way to verify the remote server’s SSH host-key fingerprint.
The local mount point is empty and is not a critical system directory.
Replace files@storage.example.net:/srv/data with your remote username, hostname, and directory. The hostname is a placeholder. The local mount point is /mnt/remote; the dedicated key is /root/.ssh/sshfs_boot.
This is an administrator-managed system mount. It runs locally as root but logs into the remote server as files, not remote root. The SSHFS project documentation generally recommends running ordinary interactive mounts as a regular user. A system boot mount requires deliberate credential and access management.
Install SSHFS on the Debian client. The remote system needs working SFTP service; it does not need an SSHFS installation just to serve files. If package installation fails, resolve the repository or connectivity issue before editing boot configuration.
Install the SSHFS client and OpenSSH tools on Debian.
لا تستبدل مفتاحًا موجودًا في هذا المسار. اختر اسمًا آخر إذا لزم الأمر، واستخدمه باستمرار أدناه. عبارة المرور الفارغة مقصودة لهذا المثال غير المراقب: لا يوجد شخص متاح لفتح المفتاح أثناء بدء التشغيل. احمِ العميل، وامنح الحساب البعيد أذونات الدليل التي يحتاجها فقط. إذا كانت سياستك تتطلب مفاتيح مشفرة، فقم بإعداد آلية فتح غير مراقب مُدارة بدلاً من ذلك.
خيارات توليد المفاتيح موثقة في دليل ssh-keygen الخاص بنظام دبيان . المفتاح الذي يتم فتحه في وكيل SSH الخاص بجهازك لا يكون متاحًا تلقائيًا لنظام التشغيل.
قم بإعداد الدلائل المحلية قبل إنشاء مفتاح التمهيد المخصص.
3. قم بتفويض المفتاح والتحقق من بروتوكول SFTP غير المراقب
أثناء عملية إعداد الاتصال، قارن بصمة مفتاح المضيف المعروضة مع القيمة التي تم الحصول عليها من مسؤول الخادم عبر قناة موثوقة قبل قبولها. يتم تشغيل الأمر بصلاحيات المستخدم الجذر المحلي، لذا يتم تخزين سجل مفتاح المضيف المعتاد في ملفات SSH الخاصة بالمستخدم الجذر. إذا كان الإعداد باستخدام كلمة المرور معطلاً على الخادم، فاطلب من المسؤول تثبيت المفتاح العام بدلاً من ذلك.
بعد ذلك، اختبر بروتوكول SFTP باستخدام نفس ملف الهوية ومفتاح المضيف الذي سيستخدمه نظام التشغيل:
عند موجه SFTP، استخدم الأمر ls /srv/data، ثم bye. يجب أن يعمل هذا بدون كلمة مرور أو طلب تأكيد. BatchMode=yesيمنع الأمر المصادقة التفاعلية؛ ويحافظ إعداد مفتاح المضيف الصريح على التحقق. هذه الخيارات مُعرّفة في دليل تكوين عميل OpenSSH .
بالنسبة للمنفذ غير الافتراضي، استخدم الأمر -p 2222`ssh-copy-id` -P 2222مع بروتوكول SFTP، port=2222وفي خيارات SSHFS. إذا لزم وجود مضيف وسيط، فقم بتكوين هذا المسار واختباره ضمن سياق SSH الخاص بالمستخدم الجذر أيضًا.
قم بتفويض المفتاح العام المخصص لحساب المستخدم البعيد كمثال؛ وتحقق من بصمة المضيف أثناء الإعداد.
تأكد من أن القائمة تنتمي إلى الدليل البعيد المقصود. في هذا المثال، يُسمح بالوصول مبدئيًا فقط لمالك التثبيت المحلي، وهو المستخدم الجذر (root)، لذا استخدم الأمر sudo للتحقق. أنهِ العملية بفصل التثبيت قبل بدء عملية التهيئة المُدارة بواسطة systemd. أغلق واجهات الأوامر والتطبيقات التي تستخدم الدليل إذا كان مشغولًا.
يستخدم نظام ملفات SSHFS صلاحيات الحساب البعيد. لا تمنح صلاحيات المستخدم الجذر على جهاز العميل صلاحيات إضافية على الخادم. قم بإصلاح أخطاء المصادقة، أو بروتوكول SFTP، أو مسار الخادم البعيد هنا قبل حفظ الإعدادات.
يعرض الطرفية مثالاً على التثبيت اليدوي؛ استخدم الأمر الكامل وخيارات التحقق الموجودة في النص.
5. أضف إدخال fstab الدائم
sudo cp -a /etc/fstab /etc/fstab.sshfs-backup
sudoedit /etc/fstab
اختر اسم ملف احتياطي مختلف إذا كان هذا الملف موجودًا بالفعل. أضف ما يلي في سطر واحد ، مع استبدال اسم الخادم والمسار المذكورين في المثال:
يُحدد دليل SSHFS الخاص بنظام دبيان sshfsنوع نظام الملفات في ملف fstab ويقبله fuse.sshfsلأغراض التوافق. تُعطّل الحقول الأخيرة جدولة عمليات النسخ الاحتياطي وفحص نظام الملفات لهذا الإدخال. راجع مرجع تنسيق fstab إذا كانت المسارات تحتوي على مسافات بيضاء.
خيار
الغرض
_netdev
يصنف هذا النظام الحامل على أنه يعتمد على الشبكة.
nofail
لنكمل عملية الإقلاع دون الحاجة إلى هذا التثبيت.
x-systemd.automount
يُنشئ عملية تثبيت تلقائية يتم تشغيلها عند الوصول.
x-systemd.mount-timeout=30s
يحدد هذا الأمر فترة انتظار أمر التركيب الأولي.
ConnectTimeout=10
إنشاء اتصال SSH محدود.
reconnectوإعدادات تشغيل الخادم
المساعدة في اكتشاف انقطاع الاتصال وإعادة الاتصال.
الخيارات الخاصة بنظام systemd موثقة في دليل تركيب نظام systemd في دبيان . ولا يفرض مهلة التركيب حدًا زمنيًا على كل عملية ملف لاحقة.
قم بعمل نسخة احتياطية من ملف fstab قبل إضافة إدخال SSHFS الدائم.
6. أعد تحميل systemd وقم بتفعيل التثبيت التلقائي
sudo findmnt --verify --verbose
sudo systemctl daemon-reload
sudo systemctl start mnt-remote.automount
systemctl status mnt-remote.automount
sudo ls /mnt/remote
findmnt -t fuse.sshfs
راجع رسائل التحقق قبل المتابعة. يشرح دليل findmnt عملية التحقق من ملف fstab؛ حيث يتحقق هذا من الإعدادات، وليس من صحة بيانات الاعتماد عن بُعد. يؤدي الوصول إلى الدليل إلى إجراء اختبار اتصال منفصل.
تتوافق أسماء الوحدات المذكورة أعلاه مع /mnt/remote. للحصول على مسار آخر، استخرج اسم نقطة التحميل باستخدام systemd-escape --path --suffix=mount /your/path. لا تحتاج الوحدات المُنشأة من fstab إلى systemctl enableأمر منفصل.
إذا كنت ترغب في محاولة الاتصال أثناء بدء التشغيل، فاحذف هذا x-systemd.automountالخيار من الإدخال. بعد تحرير مستخدمي الدليل، أوقف عملية التحميل التلقائي ووحدات التحميل، وأعد تحميل systemd، ثم ابدأ وحدة التحميل المطابقة. احتفظ بهذا الخيار nofailإذا كنت ترغب في أن يظل التخزين اختياريًا.
أعد تحميل systemd وقم بتشغيل وحدة التحميل التلقائي التي تم إنشاؤها.
7. التحقق من السلوك بعد إعادة التشغيل
أعد تشغيل الجهاز في وقت مناسب للصيانة. عند استخدام التكوين عند الطلب، تحقق من التحميل التلقائي أولاً، ثم ادخل إلى الدليل:
systemctl status mnt-remote.automount
sudo ls /mnt/remote
systemctl status mnt-remote.mount
findmnt -t fuse.sshfs
من العلامات المتوقعة وجود نظام تحميل تلقائي نشط بعد بدء التشغيل، ونظام تحميل SSHFS حقيقي بعد الوصول. autofsلا يُعد وجود إدخال وحده دليلاً على اتصال الملفات البعيدة. تحقق من وجود ملف أو دليل بعيد معروف، وليس فقط من وجود مجلد نقطة التحميل المحلية.
إذا كان التطبيق يحتاج إلى هذه المساحة التخزينية قبل بدء التشغيل، فأضف ملفًا إضافيًا إلى خدمته يحتوي على ما يلي:
[Unit]
RequiresMountsFor=/mnt/remote
تعتمد هذه التبعية، الموثقة في ملف systemd.unit ، على جلب وترتيب عمليات التحميل اللازمة. أعد تحميل systemd واختبر بدء تشغيل هذا التطبيق بشكل منفصل. يحتاج التطبيق أيضًا إلى أذونات وصول محلية مناسبة.
قم بالوصول إلى الدليل، ثم افحص وحدة SSHFS الحقيقية وحالة الوحدة الخاصة بها.
كرر اختبار SFTP في سياق الجذر؛ تحقق من المفتاح المحدد والتفويض عن بعد.
فشل التحقق من مفتاح المضيف
تحقق من بصمة الخادم وإدخال known_hosts الخاص بالمستخدم الجذر. تحقق من المفتاح المتغير قبل تحديثه.
فشل في تحليل الاسم أو الاتصال
تحقق من نظام أسماء النطاقات (DNS)، والتوجيه، والوصول إلى المنافذ، وبدء تشغيل VPN، وتوفر المضيف الوسيط.
يمكن لـ sudo قراءة الملفات، لكن المستخدم المحلي لا يستطيع ذلك.
مراجعة سياسة الوصول إلى FUSE ورسم خرائط الملكية.
الجبل مشغول
قم بإغلاق العمليات التي يكون دليل عملها أو ملفاتها المفتوحة موجودة ضمن نقطة التحميل.
network-online.targetهي نقطة مزامنة عند بدء التشغيل، وليست ضمانًا لإمكانية الوصول إلى خادم أو شبكة VPN معينة. يشرح شرح systemd network-online هذا القيد.
للوصول المتعمد من قِبل مستخدم محلي، يُرجى إضافة `<UID>` allow_other,default_permissions,uid=1000,gid=1000، مع استبدال المعرّفات المحلية الفعلية. يتيح هذا الوصول إلى ما هو أبعد من مالك نقطة التحميل، مع استمرار تطبيق فحوصات أذونات النواة. تُغيّر خيارات UID/GID الملكية المعروضة، وليس ملكية الخادم. لا تتطلب نقاط التحميل الجذرية `<UID>` user_allow_otherفي ملف fuse.conf؛ إذ تُمكّن هذه السياسة نقاط التحميل غير الجذرية من طلب وصول أوسع. راجع دليل أذونات FUSE . أعد الاختبار كمستخدم التطبيق المقصود بعد تغيير هذه الخيارات.
بعد إصلاح المشكلة الأساسية، قم بمسح حالة التحميل الفاشلة وأعد محاولة الوصول:
sudo systemctl reset-failed mnt-remote.mount
sudo ls /mnt/remote
لا تُعدّ إعادة الاتصال عملية استعادة سلسة لجميع التطبيقات: فقد تتعطل الملفات التي تم فتحها مسبقًا، وقد تحتاج إلى إعادة فتحها. كما أن انقطاع عمليات الكتابة قد يؤدي إلى فقدان البيانات. لذا، اختر تصميم تخزين آخر إذا كان حجم العمل لديك يتطلب ضمانات أقوى ضد الأعطال.
اقرأ سجل التثبيت أولاً؛ امسح حالة الفشل بعد تصحيح سببها.
قائمة التحقق التشغيلية والتراجع
يعمل بروتوكول SFTP غير المراقب باستخدام هوية التمهيد نفسها.
تم التحقق من مفتاح المضيف وتخزينه في الملف المتوقع.
يتم تحليل إدخال fstab ولا يحتوي على كلمات مرور أو محتويات مفتاح خاص.
يؤدي الوصول بعد إعادة التشغيل إلى ظهور قائمة المواقع البعيدة المطلوبة.
يمكن للمستخدم المحلي أو الخدمة الفعلية قراءة الملفات المطلوبة.
أنت تفهم كيف يتعامل التطبيق مع مساحة التخزين غير المتاحة.
لتعطيل هذا الإعداد، أوقف التطبيقات التي تستخدم الدليل، ثم أوقف النظام mnt-remote.automount، mnt-remote.mountواحذف هذا الإدخال فقط من ملف fstab، وشغّل الأمر sudo systemctl daemon-reload. احتفظ بباقي إدخالات fstab. إزالة إعدادات الربط لا تحذف الملفات البعيدة ولا تلغي مفتاح التفويض البعيد.