SSH 사용 안내

SSH를 이용하면 Termux 서버에 직접 접속해 파일을 수정하고, 서비스 상태를 점검하며, 필요한 작업을 바로 실행할 수 있습니다.

SSH란 무엇인가요?

SSH는 원격 접속 프로토콜로, 서버에 안전하게 연결해 명령어를 실행할 수 있게 해 줍니다. 서버 설정, 파일 수정, 로그 확인, 서비스 재시작 같은 작업을 빠르게 처리할 수 있습니다.

SSH 서버 준비

Termux에서 SSH를 사용하려면 openssh를 설치하고 서버를 실행하면 됩니다.

pkg update && pkg upgrade
pkg install openssh

SSH 서버를 실행하려면 다음 명령을 사용합니다.

sshd

연결 정보

  • 호스트: 192.168.0.101
  • 포트: 8022
  • 아이디: termux_user (예시용 임시 표기)
  • 비밀번호: 직접 설정한 SSH 비밀번호

터미널에서 다음 형식으로 접속할 수 있습니다.

ssh -p 8022 termux_user@192.168.0.101

termux_user는 설명을 위한 예시입니다. 실제 접속할 때는 아래 명령으로 확인한 아이디로 바꿔 입력하세요.

안드로이드 아이디와 비밀번호 확인·설정

안드로이드의 Termux 사용자는 보통 u0_a81처럼 보이는 시스템 계정입니다. 숫자는 기기와 설치 환경마다 다르므로, 화면에 표시된 예시 아이디를 그대로 사용하지 말고 Termux에서 직접 확인합니다.

# 현재 로그인한 사용자 이름 확인
whoami
id -un

# 사용자 ID와 소속 그룹까지 확인
id

SSH 비밀번호는 보안상 조회할 수 없습니다. 처음 설정하거나 잊어버렸다면 Termux에서 새 비밀번호를 입력합니다.

passwd

입력하는 동안 비밀번호 글자가 화면에 표시되지 않는 것이 정상입니다. 설정한 비밀번호는 SSH 접속 시 사용하며, 웹페이지나 명령어에 직접 적어 공유하지 마세요.

SSH로 자주 하는 작업

  • 파일 편집: nano, vim, sed 등을 사용해 수정
  • 웹 서버 확인: nginx, php-fpm 상태 확인
  • 파일 업로드: scp 또는 rsync로 업로드
  • 로그 확인: tail 명령으로 오류 확인

root 권한으로 전환하기

Termux는 기본적으로 일반 앱 사용자 권한으로 실행됩니다. 기기가 실제로 root 권한을 얻은 상태(루팅된 기기)여야만 root로 전환할 수 있으며, SSH에 접속했다고 자동으로 root가 되지는 않습니다.

Android 5.1과 같은 구형 버전은 최신 Android보다 공개된 루팅 방법이나 호환 도구가 많아 상대적으로 root 권한을 얻기 쉬운 편입니다. 하지만 기기 모델, 빌드번호, 부트로더 잠금 상태와 제조사 보안 설정에 따라 결과가 다르므로 반드시 해당 기기에 맞는 방법을 확인해야 합니다. 루팅 전에는 사진과 데이터 등을 백업하고, 신뢰할 수 없는 도구나 출처를 사용하지 마세요.

먼저 현재 권한과 su 명령의 존재 여부를 확인합니다.

id
command -v su

루팅된 기기에서 root 전환을 시도하는 방법은 다음과 같습니다.

su -

또는 Termux용 tsu를 설치한 뒤 다음처럼 실행할 수 있습니다.

pkg install tsu
tsu

프롬프트가 #로 바뀌고 id -u 결과가 0이면 root 권한입니다. su: not found가 나오거나 권한 승인이 되지 않으면 기기가 루팅되지 않았거나 root 관리 앱 설정이 필요한 상태입니다. root 작업은 시스템 파일과 사용자 데이터를 손상시킬 수 있으므로 꼭 필요한 경우에만 사용하세요.

root 권한과 80·443 포트

리눅스와 Android의 보안 정책에서는 일반적으로 1024번 이하의 포트를 privileged port로 취급합니다. 따라서 기본 Termux 사용자(u0_a81 등)는 80번(HTTP)과 443번(HTTPS) 포트를 직접 열 수 없고, 보통 8080이나 8443 같은 높은 포트를 사용합니다.

기기를 루팅해 root 권한(UID 0)을 확보하면 80번과 443번 포트를 사용하는 것이 가능합니다. 다만 SSH로 접속한 것만으로는 권한이 바뀌지 않으므로, 해당 웹 서버 프로세스 자체를 root 권한으로 실행하거나 필요한 권한(capability)을 부여해야 합니다.

# root 셸인지 확인
      su -
      id -u

      # root 셸에서 웹 서버의 낮은 포트 사용 여부 확인
      ss -ltnp | grep -E ':(80|443)'

예를 들어 root 셸에서 Nginx 설정의 listen 80; 또는 listen 443 ssl;을 사용해 서비스를 시작할 수 있습니다. 80번과 443번 포트를 이미 다른 프로세스가 사용 중이면 바인딩할 수 없으므로 먼저 점유 상태를 확인하세요. Android의 root 관리 앱(Magisk 등) 정책에 따라 권한 승인을 별도로 허용해야 할 수도 있습니다.

기기가 루팅되지 않았거나 웹 서버를 일반 사용자로 실행한다면 8080·8443 같은 높은 포트를 계속 사용해야 합니다. 이 경우 외부의 80·443 요청을 공유기 포트포워딩, 별도 서버의 reverse proxy, 또는 터널링 서비스로 내부의 높은 포트에 전달할 수 있습니다.

root 권한으로 인터넷에 직접 노출되는 웹 서버를 실행하면 시스템 전체에 영향을 줄 수 있습니다. 필요한 포트만 열고, 방화벽·HTTPS 인증서·관리자 비밀번호를 함께 점검하세요.

SSH 사용 시 주의할 점

  • 접속 후 작업 디렉터리를 확인합니다.
  • 중요한 파일은 변경 전에 백업합니다.
  • 비밀번호나 키 파일은 안전하게 관리합니다.

Windows용 SSH 프로그램

Windows에서 Termux 서버에 접속할 때 사용할 수 있는 프로그램들입니다. 서버 주소, SSH 사용자 이름, 포트 8022를 입력하면 접속할 수 있습니다.

  • PuTTY - 가볍고 오래 사용된 Windows용 SSH 클라이언트입니다. 터미널 접속만 간단히 할 때 적합합니다.
  • Windows Terminal - Windows 기본 터미널 환경을 확장해 PowerShell, 명령 프롬프트, SSH를 한 창에서 사용할 수 있습니다.
  • PowerShell - 명령어와 스크립트를 활용해 SSH 접속과 서버 관리를 자동화할 수 있습니다.
  • MobaXterm - SSH 터미널과 SFTP 파일 탐색기를 함께 제공해 원격 파일 관리에 편리합니다.
  • WinSCP - SSH 기반 SFTP로 파일을 안전하게 전송하고 원격 폴더를 관리할 수 있습니다.
호스트: 스마트폰 내부 IP (예: 192.168.0.101)
포트: 8022
사용자: Termux에서 확인한 사용자 이름
프로토콜: SSH 또는 SFTP

인터넷을 통한 원격 접속에서는 일반 FTP보다 암호화된 SFTP를 사용하고, 비밀번호 대신 SSH 키 인증을 설정하는 것이 좋습니다.

환경: Linux localhost 3.10.54 #1 SMP PREEMPT Mon Mar 4 09:56:39 KST 2019 armv7l — Termux detected
PHP: 7.3.10 (fpm-fcgi)
nginx: sh: nginx: not found