rclone으로 OneDrive 암호화해서 쓰기

rclone으로 OneDrive 암호화해서 쓰기
Photo by Dan Nelson / Unsplash

학교 OneDrive는 무료로 5TB나 되는 용량을 제공해 주지만 학교 관리자가 파일 명을 볼 수 있다는 단점이 있다. 그 외에도 클라우드 스토리지 관리자가 자신의 데이터를 어떻게 쓸 지 모른다는 불안감을 가진 사람도 있을 것이다. 빅 데이터가 돈이 되는 시대니까.

그런 사람들을 위해, rclone을 이용해 onedrive를 암호화해서 사용하는 법을 소개한다. onedrive에서 복호화 작업 없이 빠르게 접근해야 하는 파일은 암호화하지 않고, 암호화가 필요한 파일만 onedrive 안의 폴더 하나에 모두 저장해두는 방식으로 암호화를 진행할 것이다. (그리고 rclone이 그런 방식의 암호화만 지원한다.)

후술할 터미널은 cmd, powershell, windows terminal 등이 있을 것이다. 개인적으로 windows terminal을 추천하나 다른 터미널을 써도 아무런 지장 없다. Windows Terminal을 일단 기본으로 설정하고 설명하겠다.

1. chocolatey 설치

chocolatey란 Linux의 apt에 대응되는 Windows의 Package Manager이다. 쉽게 말해 여러 소프트웨어를 명령어 하나로 간편하게 설치하고, 업데이트하고, 제거할 수 있도록 설계한 것을 말한다.

Chocolatey 설치 방법은 공식 설치 링크 를 참고하거나 아래 명령어를 관리자 권한으로 실행한 Windows Terminal에 붙여 넣어 실행하면 된다. (관리자 권한 없이 실행하면 안 되니 유의.) 아래 명령어에서 설치 명령어가 왠만하면 바뀌진 않겠으나 이 글의 작성 시점과 독자가 이 글을 읽는 시점 간 시간 차이가 많이 나면 혹시 설치 명령어가 바뀌었을 수 있으니 공식 설치 링크를 참고하자.

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

2. rclone, winfsp 설치

관리자 권한으로 windows terminal을 열고 choco install rclone winfsp를 실행한다. 그럼 rclone과 winfsp가 간편하게 설치된다.

참고로, rclone과 맨 뒤에 서술할 안드로이드 앱 rcx는 "오픈 소스 프로젝트"이므로 이 프로그램이 몰래 뭘 할 걱정은 접어둬도 된다.  소스코드는 전부 https://github.com/rclone/rclone 에 공개되어 있다.

3. rclone 설정

이제 rclone을 설정하고 마운트를 해볼 건데, 관리자 권한으로 Windows Terminal을 열 필요는 없다. (오히려 무슨 이유인지는 잘 모르겠는데 관리자 권한으로 rclone mount같은 걸 했을 때 실행이 안 되는 경우가 있다.)

커맨드 창을 열고 rclone config를 입력한다.

그리고 아래 커맨드를 따라 onedrive:abcd:의 remote를 추가한다. 영상도 추가하니 참고 바람. 영상은 onedrive 영상의 경우 개인 토큰이 노출되기 전에 영상을 잘라버렸는데, 영상에서 잘린 부분 이후로 "이 설정 맞음?? 맞으면 엔터치셈" 이런 메시지가 나오는데 하라는 대로 엔터 한번만 더 치면 된다.

abcd는 대충 임의로 정한 crypt remote 이름인데, 자신이 암호화 드라이브의 이름으로 설정하고 싶은 걸로 알아서 바꾸면 된다. 경로는 onedrive 안의 abcd라는 폴더로 정했는데, 이것도 경로든 파일명이든 알아서 하고 싶은 대로 바꾸면 된다. 이대로 설정을 진행하면 앞으로 abcd 폴더 안에 암호화 파일이 저장된다.

단, 나는 rclone v1.57.0을 기준으로 서술하고 있는데 혹시 버전이 좀 많이 다르다면 입력해야 하는 게 좀 다를 수도 있다. 그런 경우 알아서 잘 바꿔서 커맨드 입력해보자.

그런 게 아니면 진짜 아래에 내가 적어둔 대로 대충 몇글자 끄적이고 전부 엔터치면 알아서 설정 다 된다. 매우 편리함.

====아래부터 onedrive 설정====
n
onedrive
onedrive
(엔터)
(엔터)
(엔터)
(엔터)
(브라우저에 창 열리면 onedrive 로그인)
1
(엔터)
(엔터)

====아래부터 abcd 설정====
n
abcd
crypt
onedrive:abcd
(엔터)
(엔터)
y
(패스워드 알아서)
(패스워드 확인)
(엔터)
(엔터)


====q 입력해서 config에서 나갑니다====
0:00
/
0:00
/

4. rclone mount

rclone copy과 sync도 쓰임새가 많지만 아무래도 GUI에 익숙한 Windows 유저라면 mount가 가장 익숙할 것이다. 가상 드라이브(물리적으로 존재하지 않는 드라이브)를 마운트하려면 위에서 설치한 winfsp가 필요한데, 이 튜토리얼을 그대로 따라왔으면 이미 설치했을 것이므로 그냥 아래 명령어를 실행하면 된다.

rclone mount (remote 이름): (할당할 드라이브): --log-level INFO --vfs-cache-mode full --file-perms 0777

예를 들어 rclone mount abcd: A: --log-level INFO --vfs-cache-mode full --file-perms 0777

위 명령어를 mount 하고 싶을 때마다 입력하기는 귀찮으므로, C:\Users\유저명 경로에 mount.bat를 만들고 안의 내용으로 rclone mount abcd: A: --log-level INFO --vfs-cache-mode full --file-perms 0777을 채워넣자. 그러면 이후 Win+R을 눌러 '실행'을 실행하고, wt를 입력하고 엔터를 입력해 Windows Terminal을 실행하고, mount.bat을 실행해(mou 정도만 입력하고 Tab을 누르면 자동완성 된다.) 바로 마운트 시킬 수 있다.

참고로 Windows Terminal은 Win10은 Microsoft Store에서 직접 설치해야 하고 Win11은 기본 설치가 되어 있으나 wt 커맨드로 간단하게 실행하기 위해서는 처음 Windows Terminal을 실행해야 한다.

아무튼, 아래 영상을 참고하자. 저 정도로 쉽고 간단하게 실행이 된다.

0:00
/

rclone mount로 드라이브를 마운트한 이후에는, 외장 하드 더 끼워넣은 것마냥 자유롭게 그 안에 파일을 넣고 빼고 하면 된다. 그럼 자동으로 Onedrive에 암호화가 된 채로 동기화가 된다.

5. 유의사항

파일 이름이 너무 길면(대충 100자 이상) file name 암호화를 끄고 대신 obfuscation 옵션을 켜야 한다. 파일 이름이 너무 길면 파일명 암호화가 안 되기 때문이다. config 과정에 그런 설정하는 게 있으니 유심히 보고 바꾸자. 쓰다가 너무 이름이 긴 파일이 생겼는데 이 파일 이름을 줄이는 게 안 되는 모종의 상황이 있다면 파일 죄다 복사해서 새로운 crypt remote에 붙여넣기 해야할 수도 있다.

아 참, 참고로 crypt remote는 마음대로 몇개든 만들어서 쓰면 된다.

6. 모바일 앱

모바일로 암호화된 파일을 보고 싶을 경우 RCX인가? 구글플레이 스토어에 올라온 앱 깔고 똑같이 remote 설정해주면 된다. 만에 하나, 혹시나, 가짜 앱이 올라와 있을 수도 있으니 https://github.com/x0b/rcx 참고해서 공식 링크 들어가서 다운받자.