[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 次)