디지털 노마드 엔지니어 또는 수백 대의 회사 컴퓨터를 관리하는 “베이비시터”로서, 다양한 클라이언트 장치에서 서버에 접속하여 설정을 하는 것은 일상적인 작업입니다. 일부 엔지니어는 자주 사용하는 소프트웨어와 도구가 미리 설치된 노트북을 가지고 다니며, 동료나 공유 컴퓨터를 사용할 때 제한받지 않기 위해 준비합니다.
하지만 QNAP NAS에 접속하는 것은 훨씬 쉽습니다. NAS는 기본적으로 브라우저 기반 GUI를 사용하여 관리하므로, 웹 브라우저를 실행할 수 있는 모든 컴퓨터나스마트폰장치에서NAS에 접속하여 원격 작업을 수행할 수 있습니다.

터미널: 엔지니어가 로맨스를 찾는 곳
명령줄이나 터미널 모드에 접근해야 한다면 어떻게 해야 할까요? Windows, macOS, 그리고Linux운영 체제에는 일반적으로 기본 내장 SSH 클라이언트가 포함되어 있어, 보통 큰 문제가 되지 않습니다.
하지만 익숙하지 않은 컴퓨터에서 SSH 연결을 시작할 때는 여러 가지 불편함이 따릅니다. 예를 들면:
1. 구형 운영 체제 및스마트폰장치는 지원되지 않음
2018년 이전에 출시된 구형 운영 체제 버전과Android, iOS장치는 SSH 클라이언트 역할을 하는써드파티애플리케이션이 필요합니다. 많은 보안 민감 환경이나 공장에서는 여전히 구형 운영 체제를 사용하고 있습니다.
2. 보안
SSH 연결 자체는 안전합니다. 하지만 연결이 이루어지기 전에 입력한 자격 증명은 여전히 로컬 모니터링이나 키로깅에 노출될 수 있습니다. QNAP NAS의 그래픽 관리 인터페이스는 로그인 시 2단계 인증을 제공하지만, SSH는 기본적으로 이 기능을 포함하지 않습니다.
또한 외부 네트워크에서NAS에 접근할 때 해당 포트를 통해 연결이 불가능할 수 있습니다. 예를 들어, NAS가 외부에 포트 8080에서QTS웹 인터페이스만 노출한다면, SSH 연결은 통과할 수 없습니다.
3. 세션 지속성
기본적으로 SSH 연결을 통해 서버에서 실행되는 작업은 연결이 끊기면 종료됩니다. 작업이 대용량 파일 다운로드나 시간이 오래 걸리는 처리라면, 클라이언트 컴퓨터에서 계속 대기하거나 공용 컴퓨터에서 세션을 유지하는 것은 비현실적입니다.
위의 문제들을 어떻게 해결할 수 있을까요? 우리의 목표는 다음과 같습니다:
1. 웹 브라우저를 통해 터미널 모드에 접근하기
2. 클라이언트 연결이 끊겨도 세션이 계속 실행됨
먼저, 작업이 중단되지 않도록 확인하세요
세션을 유지하는 것은 비교적 쉽게 해결할 수 있습니다. QTS자체에는 세션 관련 문제가 없으며, 핵심은 터미널 인터페이스에 있습니다. 이는 screen이나 Tmux와 같은써드파티도구와 같은 터미널 멀티플렉싱 도구를 사용하여 달성할 수 있습니다. QNAP NAS의 터미널 모드는 screen을 제거하지 않으므로 세션을 유지하는 가장 쉽고 편리한 방법입니다.

screen을 사용하는 것은 매우 간단합니다. 터미널에서 “screen”을 입력하면 새로운 세션이 생성됩니다. 명령 프롬프트는 변경되지 않습니다—예를 들어, 원래 [user1@TS-464 ~]$였다면, screen 세션 내의 셸도 정확히 동일하게 나타납니다.
이 시점에서 screen으로 생성된 세션이 계속 실행 중이라면, SSH 연결이 끊겨도 영향을 받지 않습니다.
다음에 SSH 연결을 다시 설정할 때는 “screen -r”을 사용하여 기존 세션에 다시 연결하면 됩니다. screen은 여러 세션을 생성할 수 있습니다. “screen -list”를 사용하여 세션의 pID를 확인한 후, -r pID를 사용하여 해당 세션에 다시 연결할 수 있습니다.
다음 단계는 두 번째 문제, 즉 웹 브라우저를 통해 QNAP NAS터미널 모드에 접근하는 것입니다. QTS는 이 기능을 기본적으로 제공하지 않습니다. 가장 간단한 방법은 ssh-client 기능이 있는Container Station를 통해 Docker 애플리케이션을 실행하는 것입니다. 이후QTS웹 인터페이스에서컨테이너의 터미널 인터페이스를 직접 열 수 있습니다.
Docker 애플리케이션을 가장 빠르게 만드는 방법은 기존 Docker 이미지를 사용하는 것입니다. 우리가 필요한 것은 ssh-server 서비스가 아니라 ssh-client이지만, 직접 설치할 수 있습니다.Docker Hub에서 사용할 수 있는 openssh-server, 이 이미지에는 클라이언트 기능도 포함되어 있습니다. 공식 페이지에서는 YAML 구성 파일을 제공하여 배포가 더 편리합니다.

참고용 공식 YAML 예시:
services:
openssh-server:
image: lscr.io/linuxserver/openssh-server:latest
container_name: openssh-server
hostname: openssh-server #optional
environment:
– PUID=1000
– PGID=1000
– TZ=Etc/UTC
– PUBLIC_KEY=yourpublickey #optional
– PUBLIC_KEY_FILE=/path/to/file #optional
– PUBLIC_KEY_DIR=/path/to/directory/containing/only/pubkeys #optional
– PUBLIC_KEY_URL=https://github.com/username.keys #optional
– SUDO_ACCESS=false #optional
– PASSWORD_ACCESS=false #optional
– USER_PASSWORD=password #optional
– USER_PASSWORD_FILE=/path/to/file #optional
– USER_NAME=linuxserver.io #optional
– LOG_STDOUT= #optional
volumes:
– /path/to/openssh-server/config:/config
ports:
– 2222:2222
restart: unless-stopped

생성된 후, Container Station인터페이스에서 “실행”을 클릭합니다:

이후 터미널 인터페이스를 사용하여NAS호스트 시스템에 SSH로 접속할 수 있습니다:

추가된보안에 대해 2요소 인증을 활성화합니다
방화벽 제한이 없다면컨테이너은 URL을 통해 직접 접근할 수 있습니다. 하지만 이 글의 시작에서 강조했듯이, 보안을 항상 고려해야 합니다. QTS웹 인터페이스를 통해Container Station을 실행하는 것이 더 안전한 방법입니다.
그렇다면 비밀번호를 키로거로부터 어떻게 보호할 수 있을까요? 익숙하지 않은 컴퓨터를 사용할 때는 항상 각별한 주의가 필요합니다. 화면 키보드를 활성화하고 마우스로 자격 증명을 입력하는 것 외에는 현재 키로거로부터 자격 증명이 탈취되는 것을 효과적으로 막을 방법이 없습니다. 실질적인 대응책은 2요소 인증을 활성화하고 비밀번호를 정기적으로 변경하는 것입니다.

QTS은 로그인보안을 강화하기 위해 2요소 인증과 인증기 기반 인증을 제공합니다. 그러나 이 시나리오에서는 SSH 키 인증이 적용되지 않습니다.
Container Station을 통해 구축된 이 브라우저 기반 게이트웨이와 Screen의 세션 지속성은보안, 편의성, 연속성을 효과적으로 균형 있게 제공함을 보여줍니다. 이 결합된 설정으로 더 이상 특정 클라이언트 소프트웨어에 의존할 필요도, 네트워크 연결 끊김으로 인해 진행 상황을 잃을 걱정도 없습니다. 다음번 긴급 상황에 대응해야 할 때, 평소 사용하는 노트북이 없어도 웹 브라우저만 있으면 생산성을 유지할 수 있습니다.
권한와 함께 재게시됨CyberQ