728x90

remote 서버와 파일 시스템을 공유하고 싶을 때, 달리 말하면 remote 컴퓨터의 파일을 로컬에 있는 것처럼 읽고 쓰고 싶을 때

일반적으로 NFS (Network File System)를 사용합니다.

근데 NFS가 익숙치 않은 사람들에게는 설치 및 설정하는데 귀찮은 면이 많이 있습니다.

sshfs : SSH 프로토콜을 이용한 파일시스템 공유

원격 서버에 접속할 때 우리는 ssh를 이용합니다. 바로 이 프로토콜을 그대로 활용한 network filesystem이 sshfs입니다.

ssh로 접근이 가능한 서버라면 별도의 설정없이 사용이 가능합니다.

sshfs 설치

$ sudo apt-get install sshfs

sshfs로 원격 파일 시스템 마운트하기

$ sudo sshfs -o allow_other user@xxx.xxx.xxx.xxx:/remote_server/directory /local/directory

위 명령어에서 사용자, 원격지 디렉토리, 로컬 디렉토리 정보를 알맞게 수정하면 됩니다.

마운트 확인

$ df
Filesystem                            1K-blocks       Used Available Use% Mounted on
udev                                   32930708          0  32930708   0% /dev
tmpfs                                   6597560       2220   6595340   1% /run
...
tmpfs                                   6597556         16   6597540   1% /run/user/121
tmpfs                                   6597556         72   6597484   1% /run/user/1000
brown@xxx.xxx.xxx.xxx:/home/brown 2012861412 1637770708 272836624  86% /home/brown/remotespace

마운트 해제

$ sudo umount /local/directory

디버깅

Connection reset by peer 같은 오류가 발생하면 아래와 같이 옵션을 추가하여 원인을 찾는데 도움을 얻을 수 있습니다.

sudo sshfs -o debug,sshfs_debug,loglevel=debug,allow_other user@xxx.xxx.xxx.xxx:/remote_server/directory /local/directory

주의 사항

zsh를 쓰는 경우 원격 파일시스템 내에 git을 쓰는 디렉토리가 있다면 매우 느려지므로 bash로 shell을 변경해야 합니다.

728x90
복사했습니다!