sshfs를 사용하여 Linux 서버간 공유폴더 설정하기

HYEONG HWAN, MUN/ 6월 2, 2015/ 미분류/ 2 comments

https://blog.lael.be/post/1387

리눅스 서버(Linux Server)를 운영하다보면 서버간에 폴더를 공유(Shared folder)해야 할 때가 있다.

공유폴더를 설정한다거나, 백업폴더를 설정한다거나 여러 이유가 있을 수 있다.

 

그 때 사용할 수 있는 서버간에 공유폴더를 설정할 수 있는 방법을 설명하고자 한다.

 

이 방법은 Ubuntu, Debian 및 CentOS, Redhat, Amazon Linux 에서 사용할 수 있다.

 

1. Ubuntu , Debian 설치 방법

# apt-get install sshfs

아주 간단하다.

 

2. CentOS, Redhat

리눅스 확장 저장소 추가.

# yum install epel-release -y

 

설치

# yum install fuse sshfs

 

3. Amazon Linux AMI

#yum install fuse

 

Amazon Linux 저장소에는 sshfs 패키지가 없다. 컴파일 환경을 만들고, 소스를 다운받아서 컴파일 하여야 한다.

# yum install glib2-devel
# wget http://downloads.sourceforge.net/project/fuse/sshfs-fuse/2.5/sshfs-fuse-2.5.tar.gz
# tar -xzvf sshfs-fuse-2.5.tar.gz
# cd sshfs-fuse-2.5/
# ./configure
# make
# make install

 


 

 

사용법 (공통) : root 사용자가 실행하여야 한다.

 

# sshfs [email protected]:/home/backup /mybackup -o allow_other

[email protected]  : 원격 서버 로그인 계정 및 원격 아이피. root 사용자로 안해도 된다.

root 이외의 사용자를 입력할 경우 chown 같은 특수 명령어가 안되고 해당 사용자의 권한을 따르게 된다.

:/home/backup  : 원격 서버의 폴더

/mybackup   :  내 폴더.  이미 생성되어야 있어야 하고 마운트(연결)중에는 원격 데이터가 보인다.

원래 있던 파일은 삭제되지 않고, 마운트를 해제 하면 접근할 수 있다.

-o allow_other  :  root 이외의 사용자도 접근할 수 있게 할지 선택.

이 옵션을 넣지 않으면 root는 공유폴더를 사용할 수 있고, 다른 일반 사용자는 (공유되지 않은) 일반 폴더를 보게 된다.

 

더 많은 옵션을 보려면

# sshfs --help

입력!

 

[TIP] 원격지 계정을 root 로 설정할 경우 공유폴더에 대해서 파일 소유권한과 퍼미션 변경이 적용된다.
이때 권한제어 시스템은 uid 를 따른다. 즉 remote 서버의 uid 1001 유저의 파일을 local 서버의 uid 1001 유저가 소유하게 되는 것이다. (리눅스 권한제어 시스템은 uid 기반으로 동작한다.)

uid

<그림 : id 명령어를 통해 사용자의 id 를 알수 있다>

 

연결(mount) 확인하기

#df -h

 


 

 

부팅시 실행하게 하기.

이것은 원격서버에 id_rsa.pub 를 authorized_keys 에 등록한 후에 사용하는 것이다.

ssh 자동로그인을 세팅하는 방법은… 구글에 찾아보도록 하여라. 시간이 된다면 추후에 글을 쓰도록 하겠다.

자동로그인을 세팅하지 않았다면 [부팅시 실행하게 하기] 부분은 동작하지 않으니 건너 뛰도록 하자.

 

fstab 에 넣어도 되는데 라엘이는 crontab 을 더 선호한다.

부팅때 한번 실행하도록 cron을 설정하자.

#crontab -e
@reboot /usr/local/bin/sshfs [email protected]:/home/backup /mybackup -o allow_other

 

이때 sshfs 명령실행 파일의 full path(전체 경로)를 입력하도록 하자.  /whereis sshfs  또는 /which sshfs 를 입력하면 알 수 있다.

 


 

 

마운트 해제하기.

#fusermount -u /mybackup

 

간혹 오류가 나면서 마운트가 안풀릴때가 있는데

#umount /mybackup

도 시도해 본다.

 

마운트가 도저히 안풀리면 재부팅한다.

#reboot

 

마운트 해제 확인

#df -h

 

 

2 Comments

  1. 평소에 좋은 글 잘보고 있습니다.

    NFS 대비 SSHFS의 장점이 무엇이 있을까요?

    1. 한쪽에서만 세팅해도 되니까 더 설정하기 쉽고, SSH라서 (스니핑에 대해서) 더 안전하고, 원격 root 유저로 마운트하면 퍼미션이나 소유권 변경도 가능하게 됩니다.
      공유된 파일 또한 리눅스 uid 적용이 되어있어서 접근 권한 관리할 수 있습니다. (단, 이 경우 양쪽 서버의 일반사용자 uid 를 맞추어주는게 좋음)

Leave a Comment

작성하신 댓글은 관리자의 수동 승인 후 게시됩니다.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
*
*