[Linux] 在 CentOS 上使用 sshfs 來掛載 SSH server 上的檔案系統

[Linux] 在 CentOS 上使用 sshfs 來掛載 SSH server 上的檔案系統

平常在公司,要把檔案傳到一台 Linux server 上時,都是用 scp 這個命令…

不過一直使用這個命令,有時也會覺得有點麻煩,

因為我要打類似下面長長的指令:

scp -i ~/mykey test.txt root@172.22.2.20:/root/

 

正好在某篇文章裡裡看到了 sshfs 這個東西,

可以將 SSH server 上的某個目錄掛載在本機上面,

這樣子就不用再打長長的 scp 指令,只要用 cp 就能跟遠端的 server 複製檔案了~

 

參考了 How To Use SSHFS to Mount Remote File Systems Over SSH 這篇文章關於 sshfs 的說明~

下面就來實作看看吧:

 

1. 確定系統支援 fuse 這個 module

因為 sshfs 會需要用到 fuse 這個 module,因此用 lsmod 確認一下它在不在。

不支援的話… 我也還不知道要怎麼辦 (因為我的有支援,所以還沒想要去查,哈哈~ :P)

lsmod | grep fuse

  

2. 安裝 fuse-sshfs 套件

用 yum 查一下有什麼 sshfs 相關的套件:

test@localhost ~ $ yum search sshfs
=====================================================================
fuse-sshfs.x86_64 : FUSE-Filesystem to access remote filesystems via SSH

 

接下來用 yum 安裝這個 fuse-sshfs 套件:

sudo yum install fuse-sshfs

 

3. 使用 sshfs 掛載遠方 ssh server 的目錄

這邊要先建立本機端的目錄,再把遠端的目錄掛載在這目錄下面。

例如,我想把 172.22.2.20 這台機器上的 /root 目錄,掛載到我的 /mnt/myserver 這個目錄下:

sudo mkdir /mnt/myserver
sudo sshfs -o IdentityFile=~/mykey root@172.22.2.20:/root/ /mnt/myserver/

 

4. 使用 cp 來複製檔案

接下來就只要用 cp 就能直接複製檔案到遠端主機,或是複製遠端主機的資料回來了,

像是我最一開始使用的 scp 命令,現在可以換成:

sudo cp test.txt /mnt/myserver/

 

5. 取消 sshfs 掛載

當檔案處理完畢後,想關閉 sshfs 也相當簡單,用 umount 就可以了:

umount /mnt/myserver

 

 

(本頁面已被瀏覽過 1,590 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料