Tailscale을 Ubuntu(우분투) 서버에 설치하고 이를 이용해 보안적인 SSH(Secure Shell) 연결을 설정하는 방법은 크게 세 가지 원칙적(Principled) 단계로 구성됩니다: 1) Tailscale 설치 및 인증, 2) Tailscale SSH 활성화, 3) 클라이언트에서 SSH 접속입니다.
요청하신 대로, 상세한 절차와 명령어 중심으로 설명하겠습니다.
Ubuntu에 Tailscale을 설치하는 가장 권장되는 방법은 공식 설치 스크립트를 사용하는 것입니다. 이 방법은 필요한 저장소(Repository) 키와 목록을 자동으로 추가합니다.
원격 접속하려는 Ubuntu 서버의 터미널에서 다음 명령어를 실행합니다.
# 공식 설치 스크립트를 사용하여 Tailscale 설치
curl -fsSL https://tailscale.com/install.sh | sh
이 스크립트는 해당 Ubuntu 버전에 맞는 Tailscale 패키지를 자동으로 다운로드하고 설치합니다.
설치가 완료되면, Tailscale 서비스를 시작하고 사용자의 **테일넷(Tailnet)**에 장치를 등록합니다.
# Tailscale 서비스 실행 및 인증 시작
sudo tailscale up
To authenticate, visit: https://login.tailscale.com/a/xxxxxxxxxxxxx와 같은 고유한 인증 URL이 출력됩니다.100.x.y.z)를 할당받습니다.Tailscale SSH는 Tailscale 네트워크를 통해 들어오는 SSH 연결에 대해 Tailscale의 키 기반 인증을 적용하고, 기존의 sshd 설정을 간소화하는 기능입니다. 이 기능을 활성화하는 것이 가장 보안적이고 간편한 방법입니다.
Ubuntu 서버에서 다음 명령어를 실행하여, 이 노드가 Tailscale 네트워크를 통해 들어오는 SSH 연결을 처리할 것임을 알립니다.
# Tailscale SSH 기능을 활성화하고 광고(Advertise)
sudo tailscale set --ssh
기술적 설명: 이 명령을 실행하면, Tailscale은 포트 22로 들어오는 트래픽 중 테일넷에서 시작된 연결을 가로채서(Intercept) Tailscale 노드 키를 사용하여 인증 및 암호화합니다. 기존의
ssh-keygen방식의 복잡한 키 관리를 Tailscale이 대신 수행합니다.
Tailscale 관리 콘솔(Admin Console)의 액세스 제어 목록(ACL) 설정에서 SSH 접근이 허용되었는지 확인해야 합니다.
"ssh": [
{
"action": "accept",
"src": ["autogroup:member"], // 접속을 시도하는 장치 그룹
"dst": ["autogroup:self"], // 접속 대상 장치 그룹
"users": ["autogroup:nonroot", "root"] // 접속 허용 사용자
}
]Tailscale이 설치된 **로컬 컴퓨터(클라이언트)**에서 이제 Ubuntu 서버로 접속할 수 있습니다. 로컬 컴퓨터에도 Tailscale이 설치되어 실행 중이어야 합니다.
로컬 컴퓨터의 터미널에서 다음 방법 중 하나로 접속합니다.
Tailscale IP 주소 사용:
ssh [사용자명]@[Tailscale_IP_주소]
# 예: ssh ubuntu_user@100.64.65.66
MagicDNS(매직디엔에스) 호스트 이름 사용 (권장):
ssh [사용자명]@[Ubuntu_서버_이름]
# 예: ssh ubuntu_user@ubuntu-server-vm
Tailscale은 이 접속을 감지하고, 공개 인터넷을 거치지 않고 WireGuard 터널을 통해 안전하게 연결을 설정합니다.
이 과정이 성공적으로 완료되면, 공용 IP 주소나 포트 포워딩 없이 Tailscale 네트워크 내에서 안전하게 Ubuntu 서버에 SSH 접속이 가능합니다.