셀프 호스팅
직접 관리하는 컴퓨터의 폴더에 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? | [email protected] 같은 사용자와 호스트, 또는 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 [email protected] '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은 거의 찼을 때 경고합니다.- 폴더가 서버가 마운트하는 디스크에 있다면, 백업이 실행될 때 그 디스크가 마운트되어 있어야 합니다. 폴더가 없으면 백업은 다른 곳에 쓰지 않고 실패합니다.