使用 SSHFS 掛載遠端的 Linux 檔案系統及目錄
導讀 | 當我們需要在本地機器上和遠端的目錄和檔案進行互動時,總是會考慮到安全之類的問題,那麼SSHFS將會是一個不錯的選擇。 |
這篇文章對於那些無論出於什麼目的,希望在他們本地的系統中掛載遠端的檔案系統的使用者或者系統管理員有幫助。我們透過 系統中的一個安裝了 SSHFS 客戶端進行實際測試,並且成功的掛載了遠端的檔案系統。
在我們進一步安裝之前,讓我們瞭解一下 SSHFS 的相關內容,以及它是如何工作的。
SSHFS(Secure FileSystem)是一個客戶端,可以讓我們透過 SSH 檔案傳輸協議(SFTP)掛載遠端的檔案系統並且在本地機器上和遠端的目錄和檔案進行互動。
SFTP 是一種透過 SSH 協議提供檔案訪問、檔案傳輸和檔案管理功能的安全檔案傳輸協議。因為 SSH 在網路中從一臺電腦到另一臺電腦傳輸檔案的時候使用資料加密通道,並且 SSHFS 內建在 FUSE(使用者空間的檔案系統)核心模組,允許任何非特權使用者在不修改核心程式碼的情況下建立他們自己的檔案系統。
在這篇文章中,我們將會向你展示在任意 Linux 發行版上如何安裝並且使用 SSHFS 客戶端,在本地 Linux 機器上掛載遠端的 Linux 檔案系統或者目錄。
預設情況下,sshfs 包不存在所有的主流 Linux 發行版中,你需要在你的 Linux 系統中啟用 epel,在 Yum 行的幫助下安裝 SSHFS 及其依賴。
# yum install sshfs # dnf install sshfs 【在 Fedora 22+ 發行版上】 $ sudo apt-get install sshfs 【基於 Debian/Ubuntu 的系統】
當你安裝 SSHFS 包之後,你需要建立一個掛載點目錄,在這兒你將要掛載你的遠端檔案系統。例如,我們在 /mnt/tecmint 下建立掛載目錄。
# mkdir /mnt/tecmint $ sudo mkdir /mnt/tecmint 【基於 Debian/Ubuntu 的系統】
當你已經建立你的掛載點目錄之後,現在使用 root 使用者執行下面的 行,在 /mnt/tecmint 目錄下掛載遠端的檔案系統。視你的情況掛載目錄可以是任何目錄。
下面的命令列將會在本地的 /mnt/tecmint 目錄下掛載一個叫遠端的一個 /home/tecmint 目錄。(不要忘了使用你的 IP 地址和掛載點替換 x.x.x.x)。
# sshfs [email protected]:/home/tecmint/ /mnt/tecmint $ sudo sshfs -o allow_other [email protected]:/home/tecmint/ /mnt/tecmint 【基於 Debian/Ubuntu 的系統】
如果你的 Linux 伺服器配置為基於 SSH 金鑰授權,那麼你將需要使用如下所示的命令列指定你的公共金鑰的路徑。
# sshfs -o IdentityFile=~/.ssh/id_rsa [email protected]:/home/tecmint/ /mnt/tecmint $ sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa tecmin[email protected]:/home/tecmint/ /mnt/tecmint 【基於 Debian/Ubuntu 的系統】
如果你已經成功的執行了上面的命令並且沒有任何錯誤,你將會看到掛載在 /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
如果你執行 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 [email protected]:/home/tecmint fuse.sshfs 324G 55G 253G 18% /mnt/tecmint
為了永久的掛載遠端的檔案系統,你需要修改一個叫
/etc/fstab
的檔案。照著做,使用你最喜歡的編輯器開啟檔案。
# vi /etc/fstab $ sudo vi /etc/fstab 【基於 Debian/Ubuntu 的系統】
移動到檔案的底部並且新增下面的一行,儲存檔案並退出。下麵條目表示使用預設的設定掛載遠端的檔案系統。
sshfs#tec[email protected]:/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0
確保伺服器之間允許 SSH無密碼登入,這樣系統重啟之後才能自動掛載檔案系統。
如果你的伺服器配置為基於 SSH 金鑰的認證方式,請加入如下行:
sshfs#[email protected]:/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0
接下來,你需要更新 fstab 檔案使修改生效。
# mount -a $ sudo mount -a 【基於 Debian/Ubuntu 的系統】
為了解除安裝遠端的檔案系統,只需要發出以下的命令即可。
# umount /mnt/tecmint
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2931962/,如需轉載,請註明出處,否則將追究法律責任。