سوار کردن پارتیشن از راه دور SSHFS

اشتراک وفاداری (ماهی یک چایی)

می‌توانید از محتویات این باکس بگذرید و یک‌راست به سراغ نوشته اصلی بروید. قبل از خرید اشتراک وفاداری، مزایای آن را از طریق این پیوند مشاهده کنید. لطفا تنها بعد از خواندن «مزایای خرید اشتراک» اقدام به خرید کنید.

چون در حال حاضر از آرچ‌لینوکس به دبیان مهاجرت کرده‌ام، این آموزش بر اساس دبیان و برای اتصال به یک سیستم آرچ‌لینوکسی نوشته شده است. البته با پیدا کردن بسته‌های مشابه در مخازن نرم‌افزاری توزیع‌تان به راحتی می‌توانید با استفاده همین راهنما کار را پیش ببرید.

چرا SSHFS؟

SSHFS ما را قادر می‌سازد تا یک پارتیشن یا یک مسیر را از راه دور و از طریق یک تونل، بر روی سیستم اصلی خود سوار کنیم. با وجود اینکه سرعت رد و بدل داده‌ها به سرعت شبکه محدود می‌شود ولی با این حال در بسیاری از موارد سرعت فاکتور حیاتی و تعیین‌کننده نیست.

دست به کار شویم

سیستم اول (دبیان‌سوار): برای نصب بسته‌ی sshfs را در مخازن نرم‌افزاری توزیع‌تان جستجو و نصب کنید. ما ابتدا وارد محیط ریشه می‌شویم تا مجوزهای لازم را برای ادامه داشته باشیم:

su
apt-get install sshfs

بعد از نصب مطمئن شوید که ماژول هسته fuse به خوبی لود شده است. خروجی پایین همین موضوع را روشن می‌کند:

root@debian:~# lsmod | grep fuse
fuse                   83350  3 
root@debian:~#

در این آموزش من می‌خواهم که این مسیر در کامپیوتر دوم (آرچ‌سوار) را بر روی سیستم اول سوار کنم (دستور زیر را برای مشخص کردن مسیر بر روی سیستم آرچ‌سوار اجرا کردم):

[eman@myarch Arch-PKG]$ pwd
/home/eman/share/Arch-PKG
[eman@myarch Arch-PKG]$

در سیستم دبیان‌سوار: اول fuse را به گروه ریشه اضافه کنید:

adduser root fuse

حالا مسیری را با کاربر ریشه بسازید و مطمئن شوید که در محدوده‌ی مالکیت ریشه است:

mkdir /mnt/Arch-PKG
chown root /mnt/Arch-PKG

نوبت به سوار کردن پارتیشن می‌رسد. فرمان و خروجی‌های زیر را ببینید تا توضیح بدهم:

root@debian:~# sshfs -o idmap=user root@192.168.1.90:/home/eman/share/Arch-PKG/ /mnt/Arch-PKG/
The authenticity of host '192.168.1.90 (192.168.1.90)' can't be established.
ECDSA key fingerprint is **:**:**:**:**:**:**:**:**:**:**:**:**:**:**:**.
Are you sure you want to continue connecting (yes/no)? yes
Password: 

root@debian:~# ls /mnt/Arch-PKG/

خط اول مربوط به دستور سوار کردن مسیر به سیستم است. sshfs که ابزار را احضار می‌کند. سوئیچ ‎-o idmap=user را به منظور پیشگیری از مشکلات آتی در خصوص مجوزهای دسترسی به فایل‌ها و دایرکتوری‌ها اضافه می‌کنیم. قسمت بعدی در اصل کاربر ریشه‌ی سیستم آرچ‌سوار، به علاوه‌ی IP و مسیری که قرار است با استفاده از sshfs سوار کنیم، است (مبدأ). با یک فاصله، مسیری که قرار است «مبدأ» بر روی سیستم اول، سوار شود را مشخص می‌کنیم (مقصد).

بعد از زدن Return سیستم از شما یک تایید می‌خواهد که yes را تایپ می‌کنید و سپس کلمه‌ی عبور کاربری که از سیستم دوم احضار کرده‌اید را وارد می‌کنید. تمام.

حالا با استفاده از دستور mount مطمئن می‌شویم که مسیر به خوبی سوار شده است:

root@debian:~# mount
.
.
.
root@192.168.1.90:/home/eman/share/Arch-PKG/ on /mnt/Arch-PKG type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
eman@192.168.1.90:/home/eman/share/Arch-PKG/ on /mnt/tmp type fuse.sshfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)
root@debian:~# 

من مسیر را یک بار با کاربر root که در بالا هم دیدید و یک بار با کاربر eman متصل کردم. به عبارتی به فایل‌های دایرکتوری مشخص‌شده در سیستم دوم از طریق دو دایرکتوری زیر دسترسی دارم (کار اضافه برای تست بود و شما کافی‌ست که با استفاده از یک مورد کار خودتان را راه بیندازید).

برای قطع اتصال مسیرهای جاری هم می‌توانید از fusermount -u و اضافه کردن مسیر سوارشده، استفاده کنید.

root@debian:~# fusermount -u /mnt/tmp/
root@debian:~# fusermount -u /mnt/Arch-PKG/

خلاص شدن از دست پسورد

برای اینکه سیستم اول شما مورد اطمینان سیستم دوم قرار بگیرد و برای هر بار ورود، پسورد درخواست نکند می‌توانید از روش زیر استفاده کنید.

بر روی سیستم اول دستور زیر را برای ساخت کلید اجرا کنید:

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
**:**:**:**:**:**:**:**:**:**:**:**:**:**:c5** root@debian
The key's randomart image is:
+---[RSA 2048]----+
|       .000  .   |
|       . oo . .  |
|        o. o. 0  |
|         o. ... .|
|        S. o . ..|
|         .o o   .|
|             . o |
|          --o . .|
|           =.    |
+-----------------+

هر چقدر از شما سوال پرسید، شما Enter را بزنید. حتی زمانی که از شما می‌خواهد پسوردی برای کلید تعریف کنید، چیزی وارد نکنید و فقط Enter را بزنید.

حالا نوبت کپی کلید عمومی از سیستم اول به سیستم دوم است. دستور زیر را وارد کنید:

ssh-copy-id -i $HOME/.ssh/id_rsa.pub root@192.168.1.90

در انتهای دستور بالا کاربر ریشه را به همراه IP سیستم دوم قرار داده‌ام. بر اساس سیستم خودتان مقادیر را تغییر دهید.

بر روی سیستم دوم بروید و مطمئن شوید که کلید به خوبی کپی شده است:

su
cat $HOME/.ssh/authorized_keys

خروجی مشخص‌کننده‌ی نتیجه خواهد بود. به عنوان مثال:

[root@myarch Arch-PKG]# cat $HOME/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDVdvyYlzgTkjZhDK8S+EZ1fVU/lvLlayKya/u+NY9w6WerYlCxX6nMN9beTXddmlTXg6uXGYAEEnFA36JlOcXz0cr7D8KEzW1vwRtZFJzZ/oH71aDKgrY7M4yRaCsKdElrF+pbq1JT84pEmlOKluVlqGSGvn1Y0W/vrDgl9/j852tkqqIwUg+RjxRbxf13IwWhNOrIiNAFnxhKT9kMVXl9m5Gv5EYk130JNC/uSKTo8uxk5Z+Rq4m7vaIqx0hk8zfLodZ5h4vDnUpwjIhEH+L+3OogeC5bm4zbAYTf4L/5dfobuSsWF88kO/6jAurKmoHShSA5n1YyJoE6ODAgvbpb root@debian

حالا به سیستم اول بروید و سعی کنید که مسیر مورد نظر بر روی سیستم دوم را دو مرتبه سوار کنید (مطمئن شوید که مسیر را قبلا با fusermount قطع کرده باشید):

root@debian:~# sshfs -o idmap=user root@192.168.1.90:/home/eman/share/Arch-PKG/ /mnt/Arch-PKG
root@debian:~# ls /mnt/Arch-PKG/

بدون اینکه از شما درخواست پسوردی کند، بایستی شما را به مسیر مورد نظر متصل کند. اگر اینگونه نشد، یک جایی اشتباه کرده‌اید.

سوار کردن خودکار

شاید لازم باشد که این پارتیشن هر بار بعد از شروع سیستم به صورت خودکار سوار شود. از آنجایی که برای سوار کردن این پارتیشن لازم است که اتصال شبکه برقرار باشد پس بایستی کمی اتصال را به تاخیر بیندازیم. به این منظور از ‎/etc/rc.local کمک می‌گیریم. خط زیر را به فایل ‎/etc/rc.local اضافه کنید:

/usr/bin/sshfs -o idmap=user root@192.168.1.90:/home/eman/share/Arch-PKG/ /mnt/Arch-PKG

بایستی این فایل شکل و شمایلی اینچنینی پیدا کند:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/usr/bin/sshfs -o idmap=user root@192.168.1.90:/home/eman/share/Arch-PKG/ /mnt/Arch-PKG
exit 0

سیستم را ری‌استارت کنید تا زندگی به خوبی و خوشی ادامه پیدا کند.

 

برای نوشتن این راهنما از این نوشته کمک گرفتم.

2 دیدگاه

  1. سلام
    من یک سرور جدید دبیان نصب کردم به جای قبلی سیستم های آرچ بیس مشکلی ندارن برای اتصال ولی یک سیستم دبیان بیس دارم که این مشکل رو باهاش دارم read: Connection reset by peer هر کاری کردم نشد من راهنمایی کنید

    • سلام

      راهنما رو مرحله به مرحله اومدید؟ خروجی کامل هر مرحله رو برام بذارید لطفا و اینکه نسخه دبیانی که استفاده می‌کنید رو هم بگید.

پاسخ دهید

ایمیل شما نمایش داده نخواهد شد