스튜디오 엘

시놀로지 나스에 SSH 키 로그인 설정하기: 윈도우, 안드로이드 스마트폰에서 키 접속

Authors

시놀로지 나스(Synology NAS)를 운영하다 보면 패키지 상태 확인, 로그 조회, 파일 전송, rsync 작업처럼 SSH를 통한 작업이 필요한 순간이 자주 생깁니다. 이번 포스트에서는 시놀로지에서 공식적으로 지원하는 방식을 기본으로 여러 기기에서 만든 공개키를 시놀로지 나스에 복사해두고 스마트폰이나 데스크탑 등의 기기에서 쉽게 접속하는 방법에 대해 안내합니다.

이번 포스트의 핵심은 기기 별로 하나의 SSH 키를 만들고 시놀로지 나스의 authorized_keys에 각 키를 구분 가능한 형태로 등록하는 것입니다. 이렇게 구성해 두면 반복 접속도 물론 편해지고, 향후 보안 문제를 위해 특정 기기만 빠르게 비활성화하거나 삭제하는 것도 가능합니다.

SSH 키 로그인은 안전하다?

SSH 키 인증을 설정해도 기본적인 비밀번호 로그인 자체가 자동으로 사라지는 것은 아닙니다. 여전히 비밀번호를 알고있다면 비밀번호 기반 로그인이 가능하며, SSH 키를 등록하면 인증 수단이 하나 추가되는 것입니다. 또한, SSH 키로 로그인을 했더라도 sudo와 같은 민감한 작업을 할 때는 여전히 비밀번호 입력을 요구합니다.

따라서 이렇게 SSH 키 로그인을 구성할 경우 다음과 같은 상황에서 유리합니다.

  • 상태 조회, 로그 확인, 파일 전송처럼 sudo가 필요 없는 작업을 자주 하는 경우
  • openclaw 같은 자동화 에이전트가 root가 아닌 권한으로 나스에 접속해 정해진 작업을 수행해야 하는 경우
  • 스마트폰에서 내부망 기준으로 빠르게 접속해야 하는 경우

IMPORTANT

이 글은 DSM 관리자 그룹 계정으로 SSH에 로그인한 뒤, 필요할 때만 sudo -i를 사용하는 작업 방식을 기준으로 설명합니다. root 계정에 대한 직접 키 등록 및 운용은 보안 상 큰 문제가 생길 수 있으므로 신중하게 검토해야 합니다.

사전 준비

사용자 홈 서비스 활성화

먼저 DSM에서 사용자 홈 서비스를 켭니다.

DSM 제어판에서 사용자 홈 서비스 활성화

사용자 홈 서비스는 DSM 제어판 > 사용자 및 그룹 > 고급 > 사용자 홈 에 접근한 뒤 사용자 홈 서비스 활성화 를 체크하고 [적용]을 누르면 활성화할 수 있습니다.

홈 서비스를 활성화하지 않으면 홈 폴더 기반의 authorized_keys 구성이 기대대로 동작하지 않을 수 있습니다.

위 과정을 진행하면 사용자 별 홈 폴더가 생성되는데, 각 사용자의 home 폴더는 관리자 그룹에서 볼 수 있는 homes 폴더 아래의 각 사용자 계정 명 폴더입니다. 즉 abc라는 게정의 home 폴더는 실제 /volume1/homes/abc와 동일한 내용을 가리킵니다. 이렇게 생성된 homes 폴더의 권한은 변경하지 않도록 주의하시기 바랍니다.(homes 폴더 자체 및 하위 폴더)

SSH 서비스 활성화 및 접속

아래 가이드를 따라서 SSH 키를 활성화하고자 하는 관리자 그룹 계정으로 SSH에 접속합니다.

시놀로지 나스 SSH 접속 방법

기준:
Synology DSM 7.3

SSH에 연결하기 전에 먼저 해야할 일이 있습니다. 바로 DSM에서 SSH를 활성화해주는 것입니다.

만약 이미 활성화되어 있다면, 연결하는 단계로 바로 넘어가셔도 됩니다.

시놀로지 나스에서 SSH 활성화하기

시놀로지 나스는 기본적으로 보안을 위해 SSH 접속을 막아둔 상태로 운영체제가 초기화됩니다. 따라서 SSH를 활성화하기 위해서는 DSM의 설정에서 SSH를 활성화해야 합니다.

DSM GUI에서 SSH를 활성화하기 위해서는 DSM에 관리자 계정으로 접속한 다음, 제어판에 접속해야 합니다.

제어판
제어판

제어판의 메뉴를 클릭하면 터미널 및 SNMP라는 메뉴가 보입니다.

터미널 및 SNMP
터미널 및 SNMP

터미널 및 SNMP 메뉴에 진입하면, 다음과 같이 SSH 관련 설정이 바로 첫번째 탭에 보입니다.:

DSM 터미널 설정 화면

CAUTION

이 항목은 SSH를 사용하지 않을 때는 꼭 꺼 두시는 걸 권장합니다. 악의적인 사용자가 SSH 접속에 성공할 경우, 나스 내부에 접근하여 심각한 피해를 입힐 수 있습니다.

해당 화면에서 기본적으로 [SSH 서비스 활성화] 항목이 비활성화되어있을텐데요, 해당 항목을 활성화해 줍니다. 활성화한 후에는 우측 하단의 [적용] 버튼을 눌러 설정을 저장해 줍니다.

시놀로지 나스에 SSH로 연결하기

예전에는 Windows의 기본 터미널을 사용하여 SSH로 연결하는 데에 몇가지 제약이 있거나 불편해서 Putty 같은 3자 앱을 사용하는 경우가 많았는데, Windows 10 이상 버전에서는 기본적으로 OpenSSH 클라이언트가 내장되어 있기 때문에 별도의 프로그램 없이 PowerShell이나 Windows Terminal에서 바로 SSH 접속이 가능합니다.

Windows 시작 버튼

우선 Windows 시작 버튼을 눌러줍니다. 그렇게 하면 아래와 같이 시작 메뉴가 나타나게 됩니다.

Windows 시작 메뉴의 Powershell 검색 화면

그리고 상단에 나오는 검색창에 Powershell을 입력합니다. 많이 사용하셨다면 "Po" 까지만 입력해도 파워쉘이 검색 결과로 나올텐데요, 그렇게 나타나는 Powershell 앱을 클릭해서 실행해 줍니다.

Powershell에서 SSH 연결 명령어 입력 화면

그리고 위와 같이 입력을 해주는데요, 기본 입력 내용은 다음과 같습니다.:

ssh mynasid@192.168.0.xx # 실제로는 나스의 내부 IP 주소를 입력하시면 됩니다.

여기에서 mynasid에는 나스의 계정 이름을 입력하시는데, 시놀로지는 관리자 그룹에 포함된 사용자가 아닌 경우 SSH 연결을 거부하므로, 반드시 관리자 그룹에 포함된 사용자로 SSH 연결을 해야 합니다.

nasinternalip에는 나스의 내부 IP 주소를 입력하시면 됩니다. 그렇게 하면 다시 아래와 같이 암호를 입력하라는 프롬프트가 나타납니다.

mynasid@192.168.0.xx's password:

이 화면에서 본인의 계정 패스워드를 입력하면 되는데요, 입력 중 아무 것도 보이지 않는 것은 정상적인 상황입니다. 암호를 입력하고 엔터를 누르시면 됩니다.

NOTE

The authenticity of host 'mynasname (nasinternalip)' can't be established.
RSA key fingerprint is xxx..
Are you sure you want to continue connecting (yes/no)?

이건 알 수 없는 호스트에 처음 SSH로 접속 시도할 때 나타나는 메시지인데요, 정상적인 상황이니 yes를 입력하고 엔터를 누르시면 됩니다.

Using terminal commands to modify system configs, execute external binary
files, add files, or install unauthorized third-party apps may lead to system
damages or unexpected behavior, or cause data loss. Make sure you are aware of
the consequences of each command and proceed at your own risk.

Warning: Data should only be stored in shared folders. Data stored elsewhere
may be deleted when the system is updated/restarted.

mynasid@mynasname:~$

이것으로 시놀로지 나스에 SSH로 접속되었습니다. 만약 관리자 권한(root)으로 작업을 하고싶다면 한가지를 더 실행해야 합니다.

sudo -i

위 명령어를 입력하면 다시 한 번 암호를 묻는 프롬프트가 나오게 됩니다. 동일하게 자신의 계정 암호를 입력하면 관리자 권한을 얻어서 나스 안에서 모든 작업을 할 수 있게 됩니다.

이 작업은 root 권한이 아닌 관리자 사용자 계정으로 진행해야 합니다. sudo -i와 같은 명령어를 사용해 root 계정으로 전환하였다면, 다시 exit를 입력하여 사용자 계정 역할으로 변경해야 합니다.

기기별 키 이름 정하기

기기별로 키를 분리할 때는 파일명과 comment를 함께 정리해 두는 편이 좋습니다. 특히 comment는 나중에 authorized_keys에서 특정 기기의 키를 찾고 정리할 때 그대로 사용하게 됩니다.

comment는 공백 없이 정하시는 편이 좋습니다.

기기개인키 파일명 예시comment 예시
데스크톱 PCid_ed25519_synology_nas_desktopdesktop-synology
노트북id_ed25519_synology_nas_laptoplaptop-synology
안드로이드 스마트폰앱 내부 생성android-synology

TIP

comment는 사람이 구분하기 위한 이름입니다. desktop-synology, android-synology처럼 짧고 고유하게 정해 두시면 관리가 편합니다.

Windows PowerShell에서 SSH 키 만들기

본 포스트의 가이드에서는 암호화 방식으로 ed25519를 사용합니다. 키 문자열이 비교적 짧고 관리하기 편해서 일반적인 클라이언트 구성에서 쓰기 좋습니다.

먼저 Windows의 시작 버튼을 누르고 PowerShell을 입력하여 나타나는 PowersShell을 엽니다.

키 생성

New-Item -ItemType Directory -Force "$env:USERPROFILE\.ssh" | Out-Null

ssh-keygen -t ed25519 `
  -f "$env:USERPROFILE\.ssh\id_ed25519_synology_nas_desktop" `
  -C "desktop-synology"

명령을 실행하면 passphrase(암호)를 설정할 수 있습니다. 아무 것도 치지 않고 엔터를 누르면 암호 없이 저장됩니다. 이중으로 잠그고 싶다면 암호를 입력해도 되지만, 본 SSH 키 등록의 주 목적이 자동화나 편리한 접속에 있기 떄문에 암호는 생략하겠습니다. 암호를 입력해야 한다면 암호 기반 접속과 실사용 방식에서 차이가 없으니까요.

공개키 확인 또는 복사

이렇게 하면 몇 개의 파일이 .ssh 폴더에 생성됩니다. 이 중 공개키는 .pub 파일 안에 한 줄 문자열로 들어 있습니다. 이 문자열을 그대로 시놀로지 나스의 authorized_keys에 등록하면 됩니다.

아래 명령어를 사용하면 공개키를 화면에 출력할 수 있습니다.

Get-Content "$env:USERPROFILE\.ssh\id_ed25519_synology_nas_desktop.pub"

아래 명령어를 사용하면 공개키 내용이 자동으로 복사됩니다.

Get-Content "$env:USERPROFILE\.ssh\id_ed25519_synology_nas_desktop.pub" | Set-Clipboard

출력 예시는 아래와 비슷합니다.

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...snip... desktop-synology

CAUTION

복사해야 하는 것은 .pub 파일의 공개키 한 줄입니다. 개인키 파일 본문은 절대 NAS에 올리거나 복사하지 않습니다.

시놀로지 나스에 공개키 등록하기

이제 PowerShell에서 복사한 공개키를 시놀로지 나스의 authorized_keys에 바로 등록해 보겠습니다. 방금 전 나스에 접속한 SSH 창에서 이어서 진행합니다.

~/.ssh 디렉터리와 권한 준비

다음 명령어를 입력해서 홈 폴더에 .ssh 폴더를 만들고 권한을 설정합니다.

mkdir -p ~/.ssh
chmod 700 ~/.ssh

공개키 추가

아래 명령을 입력한 뒤, PowerShell에서 복사한 공개키 한 줄 전체를 그대로 붙여 넣습니다.

cat <<'EOF' >> ~/.ssh/authorized_keys
여기에 PowerShell에서 복사한 공개키 한 줄을 그대로 붙여 넣기
EOF

chmod 600 ~/.ssh/authorized_keys

공개키가 여러 개라면 이 파일에 한 줄씩 추가하면 됩니다. 데스크톱, 노트북, 스마트폰 키가 각각 한 줄로 들어가게 됩니다.

접속 테스트

공개키를 등록했다면, 데스크톱에서 새 키로 접속을 테스트해 보겠습니다.

ssh -i "$env:USERPROFILE\.ssh\id_ed25519_synology_nas_desktop" nasid@nasip

정상이라면 비밀번호 입력 요청 대신 키 인증으로 바로 접속됩니다. passphrase를 설정했다면 해당 passphrase만 입력하면 됩니다.

자주 쓸 경우 config 등록

매번 -i 옵션을 입력하기 번거롭다면 클라이언트 쪽 config 파일에 등록해 두실 수 있습니다.

윈도우를 기준으로 경로는 보통 아래와 같습니다.

C:\Users\사용자계정\.ssh\config

여기에 아래와 같은 내용을 적어놓으면 됩니다.

Host nas
  HostName 192.168.0.xx
  User 나스아이디
  Port 22
  IdentityFile ~/.ssh/id_ed25519_synology_nas_desktop

이후에는 아래처럼 간단히 접속할 수 있습니다.

ssh nas

안드로이드 Termius에서 스마트폰용 키 추가하기

스마트폰에서도 데스크톱과 같은 개인키를 복사해 쓰기보다, 스마트폰 전용 키를 따로 생성하는 편이 좋습니다.

Termius에서 키 생성

안드로이드 기준으로는 Termius가 굉장히 유명하고 사용성도 좋은 SSH 접속 앱이니 이것을 사용하겠습니다.

Termius에 접속하여 Vault > Keychain > 우측 하단 + 버튼 > [New SSH Key] > Generate new SSH Key로 이동한 뒤 새 키를 만듭니다.

새 키를 만들 때 Name은 아무 거나 선택해도 되고, 키 타입은 윈도우와 동일하게 ED25519를 선택합니다.

키를 만든 뒤에는 공개키 텍스트를 복사할 수 있습니다. Termius의 경우 터치 한 번으로 복사가 지원됩니다. 이 공개키도 시놀로지 나스의 authorized_keys에 한 줄 추가합니다.

스마트폰 공개키 등록

데스크톱으로 SSH 접속을 한 뒤 같은 방식으로 스마트폰 공개키를 추가하시면 됩니다.

cat <<'EOF' >> ~/.ssh/authorized_keys
[여기에 Termius에서 복사한 공개키 한 줄을 그대로 붙여 넣기] android-nas
EOF

chmod 600 ~/.ssh/authorized_keys

키 내용을 붙여넣고 띄어쓰기를 한 번 한 후 android-nas 처럼 키를 구분할 수 있는 라벨을 적어주시는 게 좋습니다.

Termius의 호스트에 나스 등록

이제 Vault > Hosts > New Host에서 나스 항목을 추가합니다.

  • Alias: NAS와 같이 알아보기 쉬운 별칭
  • Host / Address: 나스의 내부 IP
  • Credentials
    • Username: 키를 등록한 관리자 계정
    • Key, Certificate, FIDO2: 방금 전 만든 스마트폰 전용 키 선택

이후에는 내부망에서 앱을 열고 호스트 별칭을 터치하는 것만으로 접속할 수 있습니다.

등록된 키 확인과 정리

기기별 키를 분리해 두면 분실, 교체, 사고 대응이 쉬워집니다. 아래 명령으로 현재 등록된 키를 확인하고, 특정 기기만 비활성화하거나 삭제할 수 있습니다.

현재 등록된 키 라벨 확인

awk '{print NR ": " $NF}' ~/.ssh/authorized_keys

출력 예시는 아래와 같습니다.

1: desktop-synology
2: laptop-synology
3: android-synology

특정 기기 키 찾기

스마트폰 키를 찾으려면 아래처럼 comment 기준으로 검색합니다.

grep -n 'android-synology$' ~/.ssh/authorized_keys

출력 예시는 아래와 같습니다.

3:ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... android-termius-synology

이 경우 스마트폰 키는 3번 줄입니다.

특정 키 비활성화

예를 들어 3번 줄을 잠시 비활성화하려면 아래처럼 처리합니다.

sed -i '3s/^/# disabled /' ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

#로 시작하는 줄은 주석으로 처리되므로, 해당 키는 더 이상 사용되지 않습니다.

특정 키 삭제

특정 키를 완전히 삭제하려면 아래처럼 처리합니다. 기기 분실 등이 있었을 때 진행하면 됩니다.

sed -i '3d' ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

comment 기준으로 바로 삭제

comment가 충분히 고유하다면 아래처럼 comment 기준으로도 삭제할 수 있습니다.

grep -v ' android-synology$' ~/.ssh/authorized_keys > ~/.ssh/authorized_keys.new
mv ~/.ssh/authorized_keys.new ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

작업을 마친 뒤에는 아래 명령으로 등록 상태를 다시 확인하시면 됩니다.

awk '{print NR ": " $NF}' ~/.ssh/authorized_keys

운영 시 주의할 점

SSH 포트는 절대로 외부에 개방하지 않는 것이 좋습니다. 충분한 책임을 질 수 있는 경우에만 제한적으로 개방하셔야 합니다. 또한 개인키는 절대로 유출되지 않도록 철저히 관리하도록 해야하며, .ssh 폴더를 위험이 있는 곳에 백업하지 않도록 합니다.

또한 앞서 언급했듯이 SSH 키 인증을 설정한다고 해서 SSH 키 없이 비밀번호로 로그인하는 것이 자동으로 막히지는 않습니다. 막는 방법이 있지만 만약의 상황을 대비해서 본 포스트에서는 해당 내용은 진행하지 않습니다.

마무리

시놀로지 나스의 SSH 키 로그인은 비밀번호 로그인을 없애는 설정이라기보다, 반복 접속과 자동화 작업의 흐름을 정리하는 설정에 가깝습니다. 데스크톱, 노트북, 스마트폰마다 키를 분리해 두면 어떤 기기의 키인지 바로 구분할 수 있고, 문제가 생겼을 때 해당 키만 빠르게 정리할 수 있습니다.

실제 운영 시 SSH 포트를 외부에 직접 개방하지 않는 것, 개인키를 절대 유출하지 않는 것, root 작업은 sudo -i 기준으로 별도 관리하는 것이 특히 중요합니다. 이 세 가지만 확실히 지켜도 SSH 운용이 훨씬 깔끔해집니다.

이미 나스를 사용중인데 보안 설정 및 유지보수 등이 필요한 경우 위 버튼을 통해 문의해 주시면 전문가가 상담을 도와드리겠습니다.