셀프 호스팅

직접 관리하는 컴퓨터의 폴더에 SSH로 백업합니다. Linux 서버, NAS, Raspberry Pi, VPS는 물론, SSH 서버를 켠 Mac이나 Windows 컴퓨터도 쓸 수 있습니다. Frost는 컴퓨터에 이미 있는 SSH 클라이언트를 사용하므로, 서버에는 아무것도 설치할 필요가 없습니다.

#시작하기 전에

  • 서버에서 SSH와 SFTP가 켜져 있어야 합니다. 대부분의 Linux 서버에는 둘 다 있습니다. NAS에서는 터미널이나 파일 서비스 설정에서 찾아보세요.
  • 사용할 폴더에 쓸 수 있는 서버 계정이 필요합니다. 백업 전용 계정을 따로 만들어 두면 좋습니다.
  • Windows에서는 OpenSSH 클라이언트가 설치되어 있어야 합니다. 보통은 이미 설치되어 있습니다. 없다면 설정의 시스템 > 선택적 기능에서 추가하세요.

#설정 도우미에서

frost init을 실행하고 Self-hosted를 고릅니다.

설정 도우미의 질문 답
What is the server SSH address? me@nas.local 같은 사용자와 호스트, 또는 SSH 설정의 Host. 다른 포트를 쓰면 :2222처럼 덧붙입니다
Which folder on the server? 기본값은 frost이며, 서버의 홈 폴더 안에 있습니다. /srv/backups/frost 같은 전체 경로도 됩니다

폴더의 마지막 부분이 없으면 설정 도우미가 만듭니다. 그 상위 폴더는 미리 있어야 합니다.

#Frost의 SSH 키

Frost는 처음 설정할 때 전용 SSH 키를 만듭니다. 개인 키나 SSH 에이전트가 필요하지 않고 비밀번호를 묻지 않으므로 예약 백업도 항상 같은 방식으로 로그인합니다.

서버는 아직 Frost의 키를 모르므로, 처음에는 설정 도우미가 키를 추가할 방법을 묻습니다.

  • Add it for me(대신 추가하기)는 터미널을 ssh에 넘깁니다. 서버에 처음 연결할 때 ssh는 서버의 지문을 보여 주고 신뢰할지 묻습니다. 그런 다음 서버의 비밀번호를 묻고 Frost의 키를 추가하며, 설정 도우미가 이어서 진행합니다. 비밀번호는 ssh에만 전달됩니다. Frost는 비밀번호를 보거나 저장하지 않습니다.
  • I'll add it myself(직접 추가하기)는 Frost의 공개 키 파일이 있는 곳을 보여 줍니다. 그 파일의 줄을 서버의 ~/.ssh/authorized_keys에 추가한 뒤 [enter]를 누르세요.
컴퓨터 Frost의 공개 키
macOS와 Linux ~/.config/frost/ssh/frost_ed25519.pub
Windows %AppData%\frost\ssh\frost_ed25519.pub

설정 도우미가 키를 추가하면 그 줄은 restrict로 시작합니다. 연결 전달과 터미널 할당은 비활성화되지만 Frost는 계속 파일을 읽고 쓸 수 있습니다. 서버에서 계정을 SFTP로 제한하지 않으면 셸 명령은 계속 실행할 수 있습니다.

#키를 직접 추가하기

macOS나 Linux에서는 다음 명령으로 앞에 restrict를 붙인 키를 추가할 수 있습니다. 서버의 비밀번호를 묻습니다.

(printf 'restrict '; cat ~/.config/frost/ssh/frost_ed25519.pub) | ssh me@nas.local 'umask 077; mkdir -p .ssh; cat >> .ssh/authorized_keys'

일부 NAS는 계정 설정에 SSH 키를 붙여 넣을 수 있게 해 줍니다.

Windows 서버는 키를 다른 곳에 두므로 Add it for me를 쓸 수 없습니다. 일반 계정이면 C:\Users\<you>\.ssh\authorized_keys에, 관리자면 C:\ProgramData\ssh\administrators_authorized_keys에 줄을 추가하세요.

#포트와 SSH 설정

Frost는 ssh와 마찬가지로 ~/.ssh/config를 읽습니다. Host 항목에서 사용자, 포트 등의 옵션을 설정하고 그 이름을 주소로 입력할 수 있습니다. Frost는 전용 키를 제공하지만 SSH 설정에서 IdentityFile로 명시한 키도 제시될 수 있습니다.

#알아 두면 좋은 점

  • 서버의 파일 시스템이 하드 링크를 지원해야 합니다. Frost는 하드 링크를 사용해 두 컴퓨터가 서로의 백업 기록을 절대 덮어쓰지 않게 합니다. ext4, Btrfs, XFS, ZFS, APFS, NTFS는 모두 지원합니다. 설정 도우미가 연결할 때 이를 확인합니다.
  • 서버의 호스트 키가 바뀌면 Frost는 ssh와 마찬가지로 연결을 거부합니다. 서버를 다시 설치했다면 ssh-keygen -R <host>로 이전 키를 지운 뒤 frost init을 다시 실행하세요.
  • frost status는 서버 디스크가 얼마나 찼는지 보여 주고, frost backup은 거의 찼을 때 경고합니다.
  • 폴더가 서버가 마운트하는 디스크에 있다면, 백업이 실행될 때 그 디스크가 마운트되어 있어야 합니다. 폴더가 없으면 백업은 다른 곳에 쓰지 않고 실패합니다.