웹사이트 검색

이 도구는 두 사람이 동시에 같은 리눅스 터미널에서 입력할 수 있게 해줍니다


제가 사람들을 위해 원격으로 리눅스를 문제 해결할 때, 그 과정이 실제 문제보다 더 피곤하게 느껴질 때가 있습니다. 누군가 디스코드로 화면을 공유했는데, 그들이 화면을 축소하자마자 글자가 흐릿해졌던 적도 있습니다. SSH를 사용해도 여전히 명령어를 서로 설명하게 되므로, 문제를 완전히 해결하지는 못합니다.

나는 tmate를 사용해 보았고 그 접근 방식이 놀랄 만큼 유연하다는 것을 발견했다. 그것은 화면 공유가 아니라, 두 사람이 동시에 참여할 수 있는 라이브 터미널 세션을 만들었다. 두 사람 모두 명령어를 입력하고, 파일을 편집하며, 즉시 출력을 볼 수 있다. 터미널에서 협업 편집을 하는 것 같은 느낌의 문제 해결 도구다.

공유 터미널을 사용하면 문제 해결 방식이 달라진다

명령어를 설명하는 것에서 문제를 함께 해결하는 것으로 전환하다

처음 로그인할 때는 이상하게 느껴질 수 있습니다: 당신 옆에서 움직이는 두 번째 커서가 동일한 터미널을 제어하고 상호작용합니다. 이 경험은 원격 데스크톱 도구보다는 구글 문서에서 기대하는 경험에 더 가깝습니다.

그러나 그것은 차이를 만들었다. 과거에는 원격으로 문제를 해결할 때 동작을 지시로 바꾸어야 했다. 어떤 파일을 열어야 하는지, 어떤 명령을 실행해야 하는지 설명하고, 출력 결과를 붙여넣는 등, 세션 대부분을 문제를 해결하기보다는 사람에게 무엇을 해야 하는지 말하는 데 보냈다.

저는 친구가 우분투에서 깨진 패키지 설치를 고치는 것을 도울 때 tmate의 장점을 이해하게 되었습니다. 이 과정은 일반적으로 여러 개의 스크린샷, 채팅 메시지, 그리고 붙여넣은 로그가 필요합니다. 이번에는 tmate를 사용하여, 친구가 저장소 소스를 확인하는 동안 제가 패키지 출력을 검사했습니다. 아무도 멈추고 자신이 하는 일을 설명할 필요가 없었기 때문에 문제 해결이 빠르게 진행되었습니다.

Docker 컨테이너와 Git 충돌을 수정할 때, 나는 두 번째 사람이 설정 파일을 편집하는 동안 로그를 검사할 수 있습니다. 이는 누구든 잘못된 명령어를 입력하면 양쪽 모두 즉시 보게 되므로 오류와 수정 사이의 지연을 제거합니다.

또한 두 번째 사용자가 세션에 대한 전체 키보드 접근 없이 따라올 수 있게 해주는 놀랍도록 유용한 읽기 전용 모드도 있습니다. 새로운 사용자를 터미널 기본 사항을 안내할 때 저는 기본적으로 이 모드를 사용하게 되었습니다. 반대편에 있는 사람에게는 전체 머신을 원격으로 제어하는 것보다 덜 위협적으로 느껴집니다.

설정이 거의 의심스러울 정도로 간단하게 느껴졌다

대부분의 사람들은 1분 이내에 공유 세션에 참여할 수 있습니다






Tmate는 설치 과정이 쉽기 때문에 모두에게 잘 작동합니다. 패키지 관리자를 통해 설치한 후, 실행 시 임시 SSH 연결 문자열을 생성하며, 이 문자열을 세션에 참여하는 사람에게 제공합니다.

리눅스에서 tmate는 대부분의 패키지 관리자를 통해 한 줄 명령으로 설치할 수 있습니다. 예를 들어, Debian/Ubuntu에서는 sudo apt install tmate를 사용합니다.

이 프로세스는 포트 포워딩, VPN 설정 또는 방화벽 규칙과 같은 보다 복잡한 연결 옵션을 제거합니다. SSH 연결 문자열을 공유받은 사람은 tmate가 세션을 릴레이 서버를 통해 라우팅하기 때문에 귀하의 컴퓨터에 직접 네트워크 접근이 필요하지 않습니다. 이는 NAT 트래버설 및 불안정한 인터넷 연결과 같이 기존 SSH 설정이 실패하기 쉬운 상황에서 가장 좋은 솔루션 중 하나로 만듭니다. 기존 원격 설정과 비교했을 때, 이는 더 빠르고 깔끔한 옵션입니다.

전통적인 원격 설정

tmate 워크플로우

SSH 접근 설정

tmate 실행

자격 증명 또는 키 교환

생성된 세션 문자열 공유

방화벽 포트 열기

포트 포워딩 필요 없음

IP 주소 변경 처리

중계 서버는 연결 관리를 합니다

보통 여러 도구가 필요합니다

단일 공유 세션

기술적인 측면은 인상적이지만, 그것이 정상적으로 느껴지기 시작하는 속도가 더 눈에 띕니다. 가볍게 느껴지며, 현대 협업 소프트웨어와 달리 계정, 대시보드, 오버레이 또는 통합 기능이 포함된 전체 작업 공간이 아닙니다. 단순히 공유하는 터미널 세션일 뿐입니다. 브라우저 기반의 읽기 전용 공유 가능한 링크를 생성할 수 있기 때문에, 시연과 설명을 훨씬 쉽게 수행할 수 있습니다.

각 tmate 세션은 두 개의 별도 SSH 문자열을 생성합니다 — 하나는 게스트에게 터미널에 대한 전체 쓰기 권한을 제공하고, 하나는 읽기 전용입니다 — 따라서 공유하기 전에 어떤 수준의 제어를 넘길지 선택할 수 있습니다.

진짜 장점은 무언가 고장 났을 때 나타난다

실시간 협업은 채팅 메시지를 통한 문제 해결보다 더 빠릅니다

공유 터미널의 새로움은 빨리 사라질 수 있지만, 그 유용성은 오래갑니다. 이것은 제가 원격 VPS에서 Nginx 설정에 실패한 후에 배운 것이었는데, 그때 결국 제가 마치 그랬던 것처럼 보이게 되었습니다. 마치 디버깅 과정을 디버깅하는 느낌이었습니다.

공유 tmate 세션 내의 워크플로우는 매우 다르며, 특정 고급 기능이 이를 가능하게 합니다. 예를 들어, 포그라운드 모드에서 tmate를 실행하면 셸이 종료된 후에도 세션이 유지되어 긴 문제 해결 세션이나 클라우드 서버에 대한 일시적인 원격 액세스를 수행할 수 있습니다. 연결이 끊길 때마다 전체 환경을 다시 구축할 필요가 없습니다.

tmate는 또한 가르치는 일을 훨씬 덜 혼란스럽게 만듭니다. 포럼에서 명령어를 복사하는 것보다 명령어가 실행되는 모습을 직접 보는 것이 더 몰입감 있는 학습 경험입니다. 학습자는 실패한 시도와 그 해결 방법, 그리고 그 뒤에 있는 이유를 실시간으로 볼 수 있습니다. 이 모든 것은 중요한 맥락을 제공합니다. 왜냐하면 Linux 문제 해결은 단순히 명령어를 외우는 것을 넘어섭니다. 문제를 해결하면서 시스템이 실제로 무엇을 말하는지 이해하는 것으로 발전하기 때문입니다.

Tmate는 놀라울 정도로 현대적인 문제를 해결합니다

지난 몇 년 동안 여러 디지털 도구들이 협업 기능을 갖추게 되었습니다. 여기에는 문서, 스프레드시트, 화이트보드, 디자인 도구, 코드 편집기가 포함됩니다. 하지만 대부분의 경우, 터미널은 이러한 추세를 따르지 않았습니다. 이는 터미널이 대부분의 리눅스 워크플로우에서 중심적인 역할을 한다는 점을 고려하면 이상한 일입니다. 따라서 컨테이너 배포, SSH를 통한 서버 관리, 깨진 시스템 복구 등 몇 가지 사례에서 협업이 여전히 화면 공유와 명령어 복사에 의존한다는 점은 놀라운 일입니다.

tmate는 이 오래된 관습을 깬 뒤, 뒤처진 느낌이 들었던 프로세스에 진정한 현대적 협업을 가져오는 매우 중요한 교차점에 위치합니다. 제가 발견한 이후로 가장 중요한 도구 중 하나가 되었습니다.

tmate는 세션을 공용 중계 서버를 통해 라우팅하기 때문에, 민감한 자격 증명, 운영 시스템 또는 개인 키에 접근할 수 있는 터미널에서는 직접 tmate 서버를 자체 인프라에 호스팅하지 않는 한 사용을 피해야 합니다.

관련기사