SSH는 서버 관리의 표준이지만, 모바일에서는 Wi-Fi와 모바일 데이터를 전환하거나 화면을 잠글 때마다 연결이 끊어집니다. Mosh는 네트워크가 바뀌어도 세션을 끊김 없이 유지하며, 지연 시간이 발생해도 타이핑한 내용을 화면에 즉시 보여줍니다. Mosh는 SSH를 완전히 대체하는 것이 아닙니다. 초기 접속에는 SSH를 사용하고, 그 후 UDP로 통신합니다.

SSH란 무엇이며 Mosh는 어떤 점이 다를까?

SSH는 서버와 암호화된 TCP 연결을 맺습니다. 모바일 기기의 IP 주소가 변경되면 이 연결이 끊어져 다시 로그인해야 합니다. 반면 Mosh(mobile shell)는 먼저 SSH로 접속해 서버에서 mosh-server를 실행한 뒤, 그 시점부터 세션을 UDP로 전환합니다. 이를 통해 다음과 같은 세 가지 이점을 얻을 수 있습니다:

  1. 로밍: 네트워크나 IP 주소가 바뀌어도 세션이 끊기지 않고 유지됩니다.
  2. 예측형 로컬 에코: 입력한 텍스트가 즉시 화면에 표시되며, 서버 응답이 다를 경우 자동으로 교정됩니다.
  3. 절전 모드 후 재연결: 휴대폰 잠금을 해제하면 세션이 이전 상태 그대로 이어집니다.
SSHMosh
전송 방식TCPUDP (초기 접속은 SSH 사용)
Wi-Fi/데이터 전환연결 끊김연결 유지
포트22/TCP (또는 지정된 포트)초기 접속용 22/TCP + UDP 60000-61000
포트 포워딩 및 X11지원미지원
창 크기 변경 시 텍스트 재정렬지원미지원 (mosh-server에서 처리하지 않음)

출처: mosh.org 및 man mosh, 2026-10-18 확인 기준.

Mosh를 사용하면 안 되는 경우

  • 터널링이나 포트 포워딩이 필요한 경우: Mosh는 이를 지원하지 않습니다.
  • 방화벽이나 네트워크에서 UDP 60000-61000 포트를 차단하는 경우: -p 옵션으로 단일 포트를 지정할 수 있지만, 해당 포트가 열려 있어야 합니다.
  • 서버에 mosh-server가 설치되어 있지 않고 설치할 권한도 없는 경우 (Debian/Ubuntu의 경우 sudo apt install mosh, macOS의 경우 brew install mosh).

termi1에서 Mosh 사용하는 방법

termi1은 자체적인 재구현이 아니라 iPhone, iPad, Android용 공식 mosh-client를 그대로 내장하고 있습니다. 연결 설정 화면에서 기본 모드는 SSH로 지정되어 있으며, 토글 스위치 하나로 Mosh를 켤 수 있습니다. mosh-server가 출력하는 MOSH CONNECT … 명령줄을 그대로 붙여넣는 것도 가능합니다. 서버에 Mosh가 설치되어 있지 않더라도 오류 메시지 없이 조용히 실패하는 대신, 세션을 SSH로 유지하면서 앱이 상황을 안내해 줍니다. 세션은 tmux 내부에서 구동되므로 작업을 실행해 둔 채 나가도 언제든 다시 돌아와 이어할 수 있습니다.

관리할 서버가 본인의 Mac이라면 무료 메뉴 막대 앱인 termi1 Companion(macOS 14 이상)을 활용할 수 있습니다. termi1.com에서 Apple 서명 및 공증이 완료된 DMG 파일로 다운로드할 수 있으며, Mac App Store에는 등록되어 있지 않습니다. 주요 기능은 다음과 같이 세 가지입니다:

  • 원격 로그인, mosh-server, tmux의 활성화 여부를 확인합니다. Mosh가 없다면 터미널을 열어 brew install mosh 명령어를 자동으로 입력해 주지만, 사용자의 동의 없이 직접 실행하지는 않습니다.
  • 6자리 코드로 iPhone 또는 iPad와 기기를 페어링합니다. 모바일 기기가 공개 키를 전송하여 ~/.ssh/authorized_keys에 자동 등록되므로, 직접 복사해서 붙여넣을 필요가 없습니다.
  • 기능을 켜 두면(기본값은 비활성화), tmux에서 백그라운드로 실행 중이던 장시간 작업이 끝났을 때 Mac에서 알림을 보내줍니다.

자주 묻는 질문

Mosh가 SSH를 완전히 대체하나요?

아닙니다. Mosh는 사용자 인증과 서버 내 mosh-server 구동을 위해 SSH를 사용합니다. 인증이 끝나면 세션 통신이 UDP로 넘어가지만, 기존의 SSH 키와 설정은 그대로 유지됩니다. 따라서 서버에 대한 SSH 접근 권한이 없다면 Mosh도 사용할 수 없습니다.

Mosh를 쓰려면 어떤 포트를 열어야 하나요?

초기 인증을 위한 SSH 포트(기본 22/TCP)와 세션 연결에 쓰이는 UDP 60000-61000 포트 범위를 열어야 합니다. 전체 포트 범위를 열기 부담스럽다면 -p 옵션으로 특정 포트를 지정한 뒤 방화벽에서 해당 포트만 열어주셔도 됩니다.

Mosh로 터널링이나 포트 포워딩을 할 수 있나요?

불가능합니다. Mosh는 포트 포워딩이나 X11 포워딩을 지원하지 않습니다. 데이터베이스나 웹 관리 콘솔 연결을 위한 터널링이 필요하다면 일반 SSH 연결을 사용하시고, 대화형 터미널 작업에만 Mosh를 사용하는 방식을 권장합니다.

서버에 Mosh가 설치되어 있지 않으면 termi1에서 어떻게 작동하나요?

연결은 SSH로 정상 유지되며, termi1에서 mosh-server를 찾을 수 없다는 안내를 띄웁니다. 서버에 패키지를 설치한 후(Debian/Ubuntu: sudo apt install mosh, macOS: brew install mosh) 앱에서 토글 스위치를 다시 켜기만 하면 됩니다.