Skip to content

Commit

Permalink
new post: write new post about sshfs
Browse files Browse the repository at this point in the history
  • Loading branch information
shabane committed Oct 15, 2024
1 parent 34ea59f commit d889d21
Show file tree
Hide file tree
Showing 2 changed files with 155 additions and 0 deletions.
155 changes: 155 additions & 0 deletions content/post/ssh-as-drive/sshdrive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
---
title: "مانت کردن دایرکتوری سرور روی دایرکتوری لوکال"
date: 2024-09-09T13:23:06+03:30
draft: false
description: ""
image: "images/post/dc.jpg"
categories: []
tags: []
---

<div dir='rtl' style="font-size: 25px;">

من همیشه برای کپی کردن فایل هام بین سرور و سیستمم از
[scp](http://www.wirenerd.ir/tools/scp/scp/)
استفاده می‌کنم.
البته گاهی هم با
FileZilla
به صورت گرافیکی کارم رو راه می‌اندازم.

ما برای ارتباط با یک سرور معمولا از سرویس
ssh
استفاده می‌کنیم. و خب احتمال می‌دم شما روی سرورتون این سرویس رو داشته باشین.

توی این پست ما دایرکتوری
home
یوزری که بهش دستری داریم رو روی یکی از دایکتوری های سیستم لوکالمون ماونت می‌کنیم
و بعد از اون مثل یک دایرکتوری عادی که روی هارد هست استفاده می‌کنیم.

با اینکار شما از طریق هر فایل منیجر که دارید مثل
Gnome Files
می‌تونید به دایرکتوری دسترسی داشته باشید.
حتی با ترمینال می‌تونید
cd
کنید به اون مسیر و دقیقا مثل یک فایل سیستم لوکال باهاش کار کنید.


---

قدم اول نصب ابزاری هست که این کار رو برای ما انجام می‌ده،
توی هر توزیعی اسم این ابزار ممکنه متفاوت باشه ولی توی اوبونتو
`sshfs`
هست و با
apt
نصب می‌شه.

خب برای اینکه فایل سیتم رو ماونت کنیم باید یک مسیر
روی سیستم لوکال مشخص کنیم که فایل سیستم سرور روی اون
ماونت بشه. این مسیر هر جایی می‌تونه باشه فقط دقت کنید که دسترسی
سطح کاربری خودتون رو بهش بدین.
مسیرانتخابی من
<span dir='ltr'>`/media/arya/cloud`</span>
هست.

حالا ما فرض می‌کنیم یوزری که روی سرور بهش دسترسی داریم
arya
هست، پس مثل
ssh،
از اسم این یوزر قبل از ادرس سرور استفاده می‌کنم.

و مثل ابزار
[mount](http://www.wirenerd.ir/tools/mount/mount/)
می‌تونیم با فلگ
`o-`
آپشن هایی رو برای ماونت مشخص کنیم.

توی این مثال من مسیر
<span dir='ltr'>`/home/arya`</span>
که دایرکتوری
home
کاربر
arya
که روی سرور هست رو
به دایرکتوری
<span dir='ltr'>`/media/arya/cloud`</span>
که دایرکتوری لوکال من هست
متصل می‌کنم.


```bash
# -o OptionsList, user@serverAddress :SourcePath #PathToMount

sudo sshfs -o reconnect,allow_other [email protected]:/home/arya /media/arya/cloud
```

> می‌تونیم بجای مسیر دایرکتوری سرور یک اسپیس بذاریم، اینطوری پیشفرض همون دایرکتوری
> home
> رو استفاده می‌کنه.
- من دو آپشن برای ماونت مشخص کردم
اولین
reconnect
هست که برای زمانی استفاده می‌شه که کانکشن شما با سرور قطع می‌شه
و این ابزار این کانکشن رو دوباره ایجاد می‌کنه


- دومین که
allow_other
هست برای این استفاده می‌شه که به دیگر کاربران سیستم هم اجازه
دسترسی به اون دایرکتوری رو بده.


بعد از انجام اینکار ها،
دایرکتوری شما آماده استفاده‌ست. کافیه به مسیری که فایل سیستم رو داخل اون
ماونت کردین برین، توی مثال ما
<span dir='ltr'>`/media/arya/cloud`</span>
بود.

---

بعد از همه اینها اگه نیاز شد تا این فایل سیستم رو
unmount(جدا)
کنید، خیلی ساده می‌تونید از ابزار
[umount](https://linux.die.net/man/8/umount)
و در ادامه اون مسیر دایرکتوری که فایل سیستم روی اون ماونت شده
استفاده کنید.

```bash
sudo umount /media/arya/cloud
```

---

حتی می‌تونید فایل سیستم را در زمان روشن شدن سیستم ماونت کنید.
اینکار خیلی ساده با فایل
<span dir='ltr'>`/etc/fstab`</span>
و سینتکس این فایل انجام می‌شه.
فقط
file system type
رو باید
sshfs
بنویسید.


```bash
# /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>

[email protected]:/home/arya/ /media/arya/cloud/ sshfs allow_other,reconnec

```

> یادتون باشه که برای اینکار حتما از قبل کلید پابلیک سیستمون رو داخل سرور کپی کرده باشید.
---

برای اینکه همش پسورد مزاحمتون نباشه و موقع استارتاپ فایل سیستم روی سیستم شما ماونت بشه
باید کلید پابلیک خودتون رو کپی کرده باشید داخل سرور. برای اینکار از ابزار
ssh-copy-id
استفاده کنید.

```bash
ssh-copy-id [email protected]
```

</div>
Binary file added static/images/post/dc.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit d889d21

Please sign in to comment.