Tailscale SSH install

agnusdei·2025년 11월 7일

CTF

목록 보기
158/185

🛡️ Ubuntu에 Tailscale 설치 및 SSH 연결 방법

Tailscale을 Ubuntu(우분투) 서버에 설치하고 이를 이용해 보안적인 SSH(Secure Shell) 연결을 설정하는 방법은 크게 세 가지 원칙적(Principled) 단계로 구성됩니다: 1) Tailscale 설치 및 인증, 2) Tailscale SSH 활성화, 3) 클라이언트에서 SSH 접속입니다.

요청하신 대로, 상세한 절차와 명령어 중심으로 설명하겠습니다.


1. 🖥️ Tailscale 설치 및 인증 (Ubuntu 서버)

Ubuntu에 Tailscale을 설치하는 가장 권장되는 방법은 공식 설치 스크립트를 사용하는 것입니다. 이 방법은 필요한 저장소(Repository) 키와 목록을 자동으로 추가합니다.

단계 1.1. Tailscale 설치

원격 접속하려는 Ubuntu 서버의 터미널에서 다음 명령어를 실행합니다.

# 공식 설치 스크립트를 사용하여 Tailscale 설치
curl -fsSL https://tailscale.com/install.sh | sh

이 스크립트는 해당 Ubuntu 버전에 맞는 Tailscale 패키지를 자동으로 다운로드하고 설치합니다.

단계 1.2. Tailscale 실행 및 인증 (Authentication)

설치가 완료되면, Tailscale 서비스를 시작하고 사용자의 **테일넷(Tailnet)**에 장치를 등록합니다.

# Tailscale 서비스 실행 및 인증 시작
sudo tailscale up
  • 출력 확인: 이 명령어를 실행하면 To authenticate, visit: https://login.tailscale.com/a/xxxxxxxxxxxxx와 같은 고유한 인증 URL이 출력됩니다.
  • 브라우저 인증: 로컬 컴퓨터의 웹 브라우저를 열고 해당 URL에 접속하여 사용자의 Tailscale 계정으로 로그인 및 인증을 완료합니다.
  • 장치 등록: 인증이 완료되면, Ubuntu 서버가 사용자의 테일넷에 새로운 노드(Node)로 등록되고 Tailscale IP 주소(100.x.y.z)를 할당받습니다.

2. 🔑 Tailscale SSH 활성화

Tailscale SSH는 Tailscale 네트워크를 통해 들어오는 SSH 연결에 대해 Tailscale의 키 기반 인증을 적용하고, 기존의 sshd 설정을 간소화하는 기능입니다. 이 기능을 활성화하는 것이 가장 보안적이고 간편한 방법입니다.

단계 2.1. Tailscale SSH 기능 알리기 (Advertise)

Ubuntu 서버에서 다음 명령어를 실행하여, 이 노드가 Tailscale 네트워크를 통해 들어오는 SSH 연결을 처리할 것임을 알립니다.

# Tailscale SSH 기능을 활성화하고 광고(Advertise)
sudo tailscale set --ssh

기술적 설명: 이 명령을 실행하면, Tailscale은 포트 22로 들어오는 트래픽 중 테일넷에서 시작된 연결을 가로채서(Intercept) Tailscale 노드 키를 사용하여 인증 및 암호화합니다. 기존의 ssh-keygen 방식의 복잡한 키 관리를 Tailscale이 대신 수행합니다.

단계 2.2. 접근 제어 정책(Access Control Policy, ACL) 확인

Tailscale 관리 콘솔(Admin Console)의 액세스 제어 목록(ACL) 설정에서 SSH 접근이 허용되었는지 확인해야 합니다.

  • 기본 정책: 특별히 수정하지 않았다면, 기본 ACL은 보통 테일넷 내의 **모든 장치(autogroup:member)**가 **모든 장치(autogroup:self)**에 SSH 접속하는 것을 허용합니다.
  • 커스텀 정책: 만약 ACL을 수정했다면, SSH 규칙 섹션에 다음 또는 유사한 규칙이 포함되어 있는지 확인해야 합니다.
    "ssh": [
        {
            "action": "accept",
            "src":    ["autogroup:member"], // 접속을 시도하는 장치 그룹
            "dst":    ["autogroup:self"],   // 접속 대상 장치 그룹
            "users":  ["autogroup:nonroot", "root"] // 접속 허용 사용자
        }
    ]

3. 🌐 클라이언트에서 SSH 접속

Tailscale이 설치된 **로컬 컴퓨터(클라이언트)**에서 이제 Ubuntu 서버로 접속할 수 있습니다. 로컬 컴퓨터에도 Tailscale이 설치되어 실행 중이어야 합니다.

단계 3.1. SSH 명령어 실행

로컬 컴퓨터의 터미널에서 다음 방법 중 하나로 접속합니다.

  1. Tailscale IP 주소 사용:

    ssh [사용자명]@[Tailscale_IP_주소]
    # 예: ssh ubuntu_user@100.64.65.66
  2. MagicDNS(매직디엔에스) 호스트 이름 사용 (권장):

    ssh [사용자명]@[Ubuntu_서버_이름]
    # 예: ssh ubuntu_user@ubuntu-server-vm

Tailscale은 이 접속을 감지하고, 공개 인터넷을 거치지 않고 WireGuard 터널을 통해 안전하게 연결을 설정합니다.


이 과정이 성공적으로 완료되면, 공용 IP 주소나 포트 포워딩 없이 Tailscale 네트워크 내에서 안전하게 Ubuntu 서버에 SSH 접속이 가능합니다.

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글