SSH / VNC 가이드 2026년 4월 23일

2026 클라우드 Mac 동시 SSH·화면 공유 잠금 해제 런북: PTY 자동화와 원격 GUI가 충돌할 때 MacLogin Apple Silicon을 되살리기

MacLogin Security Team 2026년 4월 23일 약 18분 읽기

같은 macOS 사용자에서 헤드리스 ssh와 대화형 화면 공유를 섞으면 네트워크 장애도 CPU 포화도 아닌 것처럼 보이는 멈춤이 자주 납니다. 2026년 4월의 실무적 결론은 콘솔 세션 경합—WindowServer, loginwindow, PTY에 묶인 자동화가 같은 GUI 컨텍스트를 놓고 싸우는 현상—이며, 바깥으로는 불안정한 VNC처럼 보이지만 실제로는 로컬 잠금입니다. 이 글은 증상 매트릭스, 순서가 있는 9단계, 5열 포트·데몬 충돌 표, 티켓에 붙일 통합 로그 술어, MacLogin 홍콩·도쿄·서울·싱가포르·미국 리스 FAQ를 제공합니다.

함께 읽기: 공유 SSH 세션 거버넌스, VNC 클립보드·화면 기록 정책, SSH 키 로테이션과 2FA. 인시던트가 반납으로 끝나면 엔터프라이즈 오프보딩 삭제를 따르세요. 운영 링크: 요금, 도움말, VNC.

MacLogin에서는 한 리스가 한 제품 라인에 묶이는 경우가 많아 도쿄 장중과 싱가포르 CI 피크가 겹치면 사람이 화면을 보며 스크립트가 Aqua를 건드리는 구성이 늘어납니다. 먼저 콘솔 경합으로 분류하면 평균 복구 시간이 짧아지고, 단순 대역폭 문제로 오인하기 어렵습니다. 온콜 런북에는 9단계 순서를 고정하고, CI를 멈추지 않은 채 프로세스만 죽이는 지름길을 막으세요. 로그는 WindowServer와 screensharingd 20분 창을 반드시 포함해 감사에서 GUI 책임을 설명할 수 있게 하십시오.

압축 로그 파일명에 리스 ID와 리전 약어를 넣고 35일 보관하면 JP와 US 검토자가 같은 tarball을 공유하며 재수집 없이 검토할 수 있습니다.

동시 원격 세션이 멈출 때(층을 잘못 탓할 때)

2026년 4월 MacLogin 브리지에서 흔한 패턴은 다음과 같습니다.

  • SSH를 통한 CIosascriptxcodebuild를 실행하고 사람은 화면 공유로 같은 데스크톱을 봅니다.
  • 보안 소프트웨어가 물리 콘솔에만 보이는 TCC 대화상자를 띄워 화면 공유에서는 보이지 않고 27–40분 동안 자동화를 막습니다.
  • 여러 화면 공유 뷰어5900 포워딩 위에 겹쳐 CPU가 한가해도 WindowServer GPU 사용이 85%를 넘습니다.
수치 가드레일: 12시간 롤링에서 WindowServer CPU가 62%를 넘고 사용자 CPU가 15% 미만이면 용량 구매가 아니라 동시성 조사부터 시작합니다.

증상 매트릭스(재부팅 전에 열 고르기)

관측 신호SSH 쪽 가설화면 공유 가설첫 조치수집 증거
커서는 움직이나 클릭 무반응sudo 비밀번호 헬퍼 정지WindowServer 정지CI 일시중지, 두 번째 뷰어 분리WindowServer 10초 샘플
SSH는 입력을 받는데 GUI 멈춤PTY는 정상콘솔 사용자 GUI 잠금보조 관리자 계정 테스트loginwindow 하트비트 로그
약 5초 안에 둘 다 멈춤커널 I/O 또는 APFS 스냅샷동일 근본diskutil apfs listSnapshots스토리지 압력 그래프
약 11분마다 화면 공유 끊김상류 유휴 TCP 타임아웃ARD 킵얼라이브 불일치SSH 터널 keepalive 60초클라이언트 TCP 캡처

잠금 메커니즘: 콘솔, ARD 에이전트, SSH PTY

많은 macOS 자동화 원시 요소가 콘솔 사용자 세션에 묶입니다. 화면 공유는 그 세션을 스트리밍하고, SSH는 헤드리스로 남거나 암묵적으로 GUI가 필요한 도구를 호출합니다. 둘이 동시에 부담을 주면 우선순위 역전이 일어나 loginwindow는 인증을 계속하지만 WindowServer는 CGS 잠금 때문에 새 프레임을 합성하지 못합니다.

MacLogin 호스트에서 화면 공유는 보통 5900, 관찰 전용은 5901–5903입니다. 노트북 절전 후 -L 5900 전달을 중복하면 충돌합니다.

경고: 콘솔 접근 없이 SSH로 WindowServer를 강제 종료하면 FileVault 켜진 리스가 위험한 상태에 빠질 수 있습니다—먼저 9단계 사다리를 따르세요.

9단계 복구 런북(건너뛰지 말 것)

  1. 영향 범위를 티켓에: 리스 ID, 메트로(HK/JP/KR/SG/US), 콘솔 사용자명, 화면 공유 클라이언트 수, 대화형 SSH 수.
  2. UI 테스트를 돌리는 CI를 최소 6분 멈춰 osascript 헬퍼가 빠져나갈 시간을 줍니다.
  3. 화면 공유는 하나만 남기고 90초 기다린 뒤 응답을 판단합니다.
  4. netstat -an | grep 590로 중복 SSH 전달을 제거합니다.
  5. 거버넌스가 허용하면 보조 macOS 사용자로 전환하고 공유 빌드 계정 가이드에 따라 빌드와 운영자를 분리합니다.
  6. 다음 절의 술어로 통합 로그를 300초 수집해 gzip을 첨부합니다.
  7. pmset displaysleepnow와 WoL로 디스플레이 절전 리셋을 시도해 재부팅 없이 합성기 상태를 풀 수 있습니다.
  8. 7단계가 두 번 연속 실패할 때만 재부팅; JP 금융 테넌트는 거래 시간을 피하세요.
  9. 사후에 어떤 자동화가 화면 공유와 다시 겹치면 안 되는지 로스터에 기록합니다.

포트·데몬 충돌 매트릭스

TCP 포트일반 소유자충돌 징후완화
22OpenSSHMaxStartups로 버스트 제한staging MaxStartups는 신중히; 점프 호스트 권장
5900화면 공유중복 SSH -L 전달엔지니어마다 다른 로컬 포트
3283ARD 에이전트(레거시)ARD+화면 공유 정책 혼재서버 정책에서 미사용 ARD 기능 끄기
동적USB 세션 도구HID 에뮬레이션 테스트전용 리스에서 HID 스위트 실행

통합 로그 술어와 증거 패키지

  • WindowServer: log show --last 20m --predicate 'process == "WindowServer"'
  • 화면 공유 인증: log show --last 20m --predicate 'process == "screensharingd"'
  • SSH 세션 튜플: 각 막힌 세션에서 SSH_CONNECTION을보내 본문에 붙입니다.

보관 목표: 공유 버킷에 35일 압축 보관해 JP와 US 규제 검토자가 같은 tarball을 다시 당기지 않고 검토하게 합니다.

FAQ

SSH로 sudo pkill ScreenSharing을 해도 되나요? 유휴 뷰어를 모두 끊은 뒤에만. 그렇지 않으면 FileVault 잠금 해제 중인 엔지니어를 고립시킬 수 있습니다.

화면 공유를 전면 금지해야 하나요? 많은 macOS 프롬프트는 GUI가 필요합니다. 금지보다 유지보수 창과 CI 캘린더를 맞춘 예약 운영이 낫습니다.

MacLogin이 화면 공유 대역폭을 제한하나요? 메트로별 셰이핑은 요금에 문서화되어 있습니다. 포화된 장거리 경로에서는 지터가 커집니다.

동시 원격 워크플로에 Mac mini M4가 유리한 이유

M4는 GPU 프레임버퍼 경로가 넓고 미디어 엔진이 효율적이라, SSH로 큰 Xcode 로그를 tail하면서도 화면 공유를 매끄럽게 유지합니다. 통합 메모리는 작은 x86 VM에서 흔한 GPU/CPU 메모리 풀 분리 스래싱을 줄입니다. HK·JP·KR·SG·US 플릿 덕분에 GUI 집약 리스를 팀 가까이 두고 CI는 헤드리스에 두어 콘솔 맥락 혼선 위험을 낮출 수 있습니다.

이 런북을 적용한 뒤에도 월 3건을 넘기면 요금에서 리스를 나누는 편이 한 대에 Aqua 자동화와 사람의 화면 공유를 쌓는 것보다 저렴합니다.

잠금 연쇄 전에 GUI와 헤드리스 리스를 분리하세요

HK·JP·KR·SG·US에서 화면 공유 친화 mini를 추가하고 CI는 SSH 전용 호스트에 두세요.