使用 SSHFS 掛載遠程的 Linux 文件系統及目錄

這篇文章對於那些不管出於什麼目的,但願在他們本地的系統中掛載遠程的文件系統的用戶或者系統管理員有幫助。咱們經過 Linux 系統中的一個安裝了 SSHFS 客戶端進行實際測試,而且成功的掛載了遠程的文件系統。php

在咱們進一步安裝以前,讓咱們瞭解一下 SSHFS 的相關內容,以及它是如何工做的。html

使用 SSHFS  掛載遠程的 Linux 文件系統及目錄使用 SSHFS  掛載遠程的 Linux 文件系統及目錄

什麼是 SSHFSlinux

SSHFS(Secure SHell FileSystem)是一個客戶端,可讓咱們經過 SSH 文件傳輸協議(SFTP)掛載遠程的文件系統而且在本地機器上和遠程的目錄和文件進行交互。sql

SFTP 是一種經過 SSH 協議提供文件訪問、文件傳輸和文件管理功能的安全文件傳輸協議。由於 SSH 在網絡中從一臺電腦到另外一臺電腦傳輸文件的時候使用數據加密通道,而且 SSHFS 內置在 FUSE(用戶空間的文件系統)內核模塊,容許任何非特權用戶在不修改內核代碼的狀況下建立他們本身的文件系統。json

在這篇文章中,咱們將會向你展現在任意 Linux 發行版上如何安裝而且使用 SSHFS 客戶端,在本地 Linux 機器上掛載遠程的 Linux 文件系統或者目錄。安全

步驟1:在 Linux 系統上安裝 SSHFS服務器

默認狀況下,sshfs 包不存在全部的主流 Linux 發行版中,你須要在你的 Linux 系統中啓用 epel,在 Yum 命令行的幫助下安裝 SSHFS 及其依賴。網絡

# yum install sshfs
# dnf install sshfs              【在 Fedora 22+ 發行版上】
$ sudo apt-get install sshfs     【基於 Debian/Ubuntu 的系統】

步驟2:建立 SSHFS 掛載目錄ssh

當你安裝 SSHFS 包以後,你須要建立一個掛載點目錄,在這兒你將要掛載你的遠程文件系統。例如,咱們在 /mnt/tecmint 下建立掛載目錄。編輯器

# mkdir /mnt/tecmint
$ sudo mkdir /mnt/tecmint     【基於 Debian/Ubuntu 的系統】

步驟 3:使用 SSHFS 掛載遠程的文件系統

當你已經建立你的掛載點目錄以後,如今使用 root 用戶運行下面的命令行,在 /mnt/tecmint 目錄下掛載遠程的文件系統。視你的狀況掛載目錄能夠是任何目錄。

下面的命令行將會在本地的 /mnt/tecmint 目錄下掛載一個叫遠程的一個 /home/tecmint 目錄。(不要忘了使用你的 IP 地址和掛載點替換 x.x.x.x)。

# sshfs tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint     
 【基於 Debian/Ubuntu 的系統】

若是你的 Linux 服務器配置爲基於 SSH 密鑰受權,那麼你將須要使用以下所示的命令行指定你的公共密鑰的路徑。

# sshfs -o IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint     【基於 Debian/Ubuntu 的系統】

步驟 4:驗證遠程的文件系統掛載成功

若是你已經成功的運行了上面的命令而且沒有任何錯誤,你將會看到掛載在 /mnt/tecmint 目錄下的遠程的文件和目錄的列表

# cd /mnt/tecmint
# ls
[root@ tecmint]# ls
12345.jpg                       ffmpeg-php-0.6.0.tbz2                Linux                                           news-closeup.xsl     s3.jpg
cmslogs                         gmd-latest.sql.tar.bz2               Malware                                         newsletter1.html     sshdallow
epel-release-6-5.noarch.rpm     json-1.2.1                           movies_list.php                                 pollbeta.sql
ffmpeg-php-0.6.0                json-1.2.1.tgz                       my_next_artical_v2.php                          pollbeta.tar.bz2

步驟 5:使用 df -hT 命令檢查掛載點

若是你運行 df -hT命令,你將會看到遠程文件系統的掛載點。

# df -hT

樣本輸出:

Filesystem                          Type        Size  Used Avail Use% Mounted on
udev                                devtmpfs    730M     0  730M   0% /dev
tmpfs                               tmpfs       150M  4.9M  145M   4% /run
/dev/sda1                           ext4         31G  5.5G   24G  19% /
tmpfs                               tmpfs       749M  216K  748M   1% /dev/shm
tmpfs                               tmpfs       5.0M  4.0K  5.0M   1% /run/lock
tmpfs                               tmpfs       749M     0  749M   0% /sys/fs/cgroup
tmpfs                               tmpfs       150M   44K  150M   1% /run/user/1000
tecmint@192.168.0.102:/home/tecmint fuse.sshfs  324G   55G  253G  18% /mnt/tecmint

步驟 6:永久掛載遠程文件系統

爲了永久的掛載遠程的文件系統,你須要修改一個叫

/etc/fstab

的文件。照着作,使用你最喜歡的編輯器打開文件。

# vi /etc/fstab
$ sudo vi /etc/fstab     【基於 Debian/Ubuntu 的系統】

移動到文件的底部而且添加下面的一行,保存文件並退出。下面條目表示使用默認的設置掛載遠程的文件系統。

sshfs#tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0

確保服務器之間容許 SSH無密碼登陸,這樣系統重啓以後才能自動掛載文件系統。

若是你的服務器配置爲基於 SSH 密鑰的認證方式,請加入以下行:

sshfs#tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0

接下來,你須要更新 fstab 文件使修改生效。

# mount -a
$ sudo mount -a   【基於 Debian/Ubuntu 的系統】

步驟 7:卸載遠程的文件系統

爲了卸載遠程的文件系統,只須要發出如下的命令便可。

# umount /mnt/tecmint

免費提供最新Linux技術教程書籍,爲開源技術愛好者努力作得更多更好:http://www.linuxprobe.com/

相關文章
相關標籤/搜索