SSH를 위한 네이티브 그래픽 셸
3 days ago
11
- 서버와 엣지 기기가 터미널만 노출하는 대신 브라우저 기반 그래픽 셸을 제공하면, 다른 기기에서 원격 앱을 더 자연스럽게 사용할 수 있음
- 이 셸은 앱 홈 화면과 앱 간 URL 조회 API를 제공해, 파일이나 리소스를 적절한 앱으로 넘기는 흐름을 만들 수 있음
- 앱은 작은 HTTP 서버로 UI를 제공하지만 일반 공개 웹 서버가 아니라, 주로 SSH나 로컬 접근을 전제로 한 비공개 서버로 동작함
- 암호화는 앱마다 직접 구현하지 않고 SSH 계층에 맡길 수 있어, 각 앱 서버는 의존성이 적고 단순한 구조를 유지할 수 있음
- Lewis는 이를 위해 Outer Loop를 SSH 브라우저로 만들고 오픈소스 Outer Shell을 공개했으며, HTML 앱과 네이티브 outerframe 앱을 모두 염두에 둠
SSH 위에서 동작하는 그래픽 셸
- 웹 브라우저는 한 기기인 서버가 다른 기기인 클라이언트에 경험을 제공하는 흐름을 이미 잘 정립해 둔 사례임
- 같은 방식을 서버와 엣지 기기에 적용하면, 원격 환경에서도 터미널 기반 앱 대신 그래픽 앱을 사용할 수 있음
- 셸은 앱들의 홈 화면을 제공하고, 각 앱은 작은 HTTP 서버로 웹 사용자 인터페이스를 서빙함
- 셸 API는 앱들이 서로의 URL을 찾을 수 있게 해 앱 간 연결을 만듦
- 예를 들어 앱이 자신을 텍스트 편집기로 등록하면, 다른 앱에서 텍스트 파일을 더블클릭해 해당 편집기 앱으로 열 수 있음
- 앱은 기존 HTML 기반 웹 앱일 수도 있고, 네이티브 outerframe 앱일 수도 있음
구현 방식과 공개된 프로젝트
- 앱 HTTP 서버는 일반적으로 네트워크의 다른 기기에서 접근할 수 없는 비공개 서버로 동작함
- 사용자는 이를 SSH를 통해 쓰거나 로컬에서 사용함
- 대부분의 기존 웹 기반 서버 도구와 달리 localhost 포트보다 Unix domain socket 파일을 주로 사용함
- Unix domain socket 파일은 포트와 비슷하지만 파일시스템에 존재하며 명시적인 사용자 권한을 가짐
- 각 HTTP 서버는 암호화를 직접 처리하지 않아도 됨
- 암호화는 SSH 계층에서 처리됨
- 이 덕분에 각 앱 서버는 의존성 없이 매우 단순할 수 있음
- Outer Loop는 이런 그래픽 셸을 위한 SSH 브라우저로 만들어짐
- 오픈소스 Outer Shell이 공개됨
- 관련 문서는 세 갈래로 제공됨
- 브라우저에서 Unix socket 연결 같은 기능은 매우 틈새 기능으로 취급됐지만, SSH와 sudo 인식 같은 기능과 결합하면 새로운 기술적 가능성이 생김
- Jupyter와 Tensorboard 같은 개별 서버형 웹 앱은 등장했지만, 각각 일회성 보안 프로토콜을 사용해 이를 “올바르게” 전달하는 공통 방식은 자리 잡지 못함
- AI가 코드 작성을 도울 수 있게 되면서 각 앱이 대상 플랫폼별 코드베이스를 갖는 것이 실용적이 됐고, 읽기와 가벼운 앱에는 HTML을, 작업용 앱에는 플랫폼 맞춤형 네이티브 앱을 쓰는 구조가 자연스러운 웹 아키텍처로 제안됨
-
Homepage
-
Tech blog
- SSH를 위한 네이티브 그래픽 셸