본문으로 건너뛰기

웹 터미널

웹 터미널은 상태 확인, 짧은 명령 및 긴급 문제 해결에 적합합니다. 모든 배포 플랫폼에서 관리자가 설정한 원격 SSH 대상에 연결할 수 있으며, 정식 표준 FPK, Linux 서비스, macOS 및 OpenWrt에서는 fn-knock가 실행되는 호스트의 로컬 PTY도 선택할 수 있습니다.

Web 터미널 켜기와 끄기

시스템 설정 → 기능 → Web 터미널에서 전체 스위치를 관리합니다. 기본적으로 켜져 있으며 관리 패널 인증을 사용합니다. 끄고 저장하면 모든 SSH 및 로컬 터미널 세션이 즉시 종료되고 터미널 접근도 비활성화됩니다. 다시 켜도 종료된 Shell은 복원되지 않습니다. 기본적으로 꺼져 있는 로컬 PTY 스위치와 별개이므로 Web 터미널을 켜도 로컬 PTY가 자동으로 활성화되지 않습니다.

플랫폼 경계

배포 방식원격 SSH로컬 PTY
정식 표준 FPK지원지원, 기본 비활성화
Knock Lite지원미지원
Linux 서비스지원지원, 기본 비활성화
macOS지원지원, 기본 비활성화
OpenWrt지원지원, 기본 비활성화
Docker, Synology DSM, Windows지원미지원
개발 환경지원미지원

원격 SSH를 사용하려면 fn-knock 실행 환경에서 대상 호스트와 포트에 연결할 수 있어야 합니다. Docker 포트 게시, OpenWrt 방화벽 또는 다른 플랫폼의 네트워크 규칙은 웹 터미널이 자동으로 변경하지 않습니다. 로컬 PTY는 SSH 서비스를 활성화할 필요가 없으며 localhost SSH를 우회 경로로 사용하지도 않습니다.

권한 경계

원격 터미널 명령은 설정된 SSH 사용자의 권한으로 실행됩니다. 로컬 PTY는 fn-knock 관리 서비스의 유효 UID/GID를 그대로 상속하며 자동으로 권한을 낮추거나 다른 사용자로 전환하지 않습니다. 서비스가 root로 실행되면 로컬 터미널도 root Shell이 되어 호스트 시스템, 애플리케이션 데이터 및 네트워크 설정을 직접 변경할 수 있습니다.

  • 관리 패널은 신뢰할 수 있는 관리자에게만 허용합니다.
  • 원격 대상은 권한이 제한된 전용 SSH 계정과 개인 키 인증을 우선 사용합니다.
  • 원격 대상을 추가할 때 독립된 신뢰 경로로 호스트 지문을 확인합니다.
  • 로컬 PTY를 활성화하기 전에 화면에 표시된 실행 계정, Shell 및 초기 디렉터리를 확인하고 위험을 명시적으로 승인합니다.
  • 설정, 패키지 또는 방화벽을 변경하기 전에 백업합니다.
  • 웹 터미널을 SSH 보안 정책, 명령 감사 또는 최소 권한 관리의 대체 수단으로 사용하지 않습니다.

로컬 PTY 활성화

지원되는 플랫폼에서 웹 터미널을 열고 로컬 터미널 설정으로 이동합니다. 이 기능은 기본적으로 비활성화되어 있습니다. 화면에는 실제 실행 계정, 특권 계정 여부, 시작할 Shell 및 초기 디렉터리가 표시되며, 위험 안내를 읽고 확인란에 동의해야 활성화할 수 있습니다. 실행 가능한 지원 로그인 Shell을 찾지 못하면 활성화할 수 없습니다.

활성화하면 고정된 로컬 대상이 원격 SSH 대상보다 앞에 표시됩니다. SSH 대상이 아니므로 편집하거나 삭제할 수 없습니다. 활성 로컬 세션이 있는 상태에서 로컬 터미널을 비활성화하면 화면에서 다시 확인을 요구합니다. 확인하면 해당 세션을 종료한 뒤 새 로컬 세션 생성 기능을 닫습니다. 설정을 저장할 때는 설정 리비전을 다시 확인합니다. 오래된 화면의 내용이 현재 설정과 충돌하면 다른 관리자의 변경을 조용히 덮어쓰지 않으며, 먼저 새로 고친 뒤 다시 확인해야 합니다.

실행 가능한 Shell은 zsh, 현재 계정의 Shell, bash, ash, sh 순서로 선택하며 로그인 Shell로 시작합니다. 초기 디렉터리는 실행 계정의 홈 디렉터리, fn-knock 데이터 디렉터리, / 순서로 선택합니다. 로컬 세션은 서비스 프로세스의 환경을 비운 뒤 신원, 경로, 터미널 및 제한된 로캘·시간대 변수만 다시 구성하여 서비스 비밀 값이 Shell로 그대로 전달되지 않게 합니다.

정식 표준 FPK에서 로컬 터미널 요청은 데스크톱 CGI 진입점 index.cgi를 거쳐 루프백 주소의 Rust 관리 서비스로 전달됩니다. fnOS 통합 게이트웨이, Go 게이트웨이 또는 gRPC를 통과하지 않으며 WebSocket도 사용하지 않습니다. 터미널은 관리 화면의 HTTP 요청과 롱 폴링 채널을 그대로 사용하므로 이를 위해 관리 포트를 추가로 공개하지 마십시오.

SSH 대상 추가

웹 터미널에서 SSH 대상 추가를 선택하고 이름, 호스트, 포트, 사용자 이름, 인증 방식을 입력합니다. 비밀번호와 OpenSSH 개인 키를 지원하며 암호화된 키의 암호도 입력할 수 있습니다.

자격 증명은 fn-knock 호스트에 암호화되어 저장됩니다. 첫 테스트에서는 서버 호스트 키 알고리즘과 지문을 표시하며 명시적으로 확인한 뒤에만 인증 정보를 보냅니다. 서버 콘솔, 이미 신뢰하는 SSH 클라이언트 또는 관리자의 기록과 비교하고 화면에 표시되었다는 이유만으로 신뢰하지 마십시오.

지문 확인과 연결 테스트가 성공한 뒤 저장합니다. 호스트, 포트, 사용자, 인증 방식 또는 신뢰한 키를 변경하면 활성 세션을 종료해야 할 수 있으며 저장 전에 영향받는 세션을 표시합니다.

대상과 세션

로컬 대상과 각 SSH 대상에는 여러 독립 Shell 세션을 만들 수 있습니다. 터미널 서비스가 실행되는 동안 페이지 새로 고침, 브라우저 닫기 또는 일시적인 네트워크 끊김은 브라우저 연결만 끊고 Shell을 즉시 끝내지 않습니다. fn-knock 서비스가 다시 시작되거나 Shell이 종료되거나 관리자가 세션을 끝내면 해당 세션이 종료됩니다. 로컬 터미널을 비활성화하면 모든 로컬 세션도 종료되며, 이미 종료된 세션은 복구할 수 없습니다.

세션 생성, 전환, 이름 변경, 재연결, 최대화, 글꼴 크기 변경, 복사, 붙여넣기, 전체 선택과 텍스트 원문 전송을 지원합니다. 원격 SSH에서는 이름 확인, 호스트 키 검증, 인증 및 PTY 요청 단계를 볼 수 있고, 로컬 터미널에서는 PTY 열기와 Shell 시작 단계를 볼 수 있습니다.

한 세션에는 한 번에 한 브라우저만 입력을 제어합니다. 다른 브라우저는 읽기 전용으로 출력만 보고 필요하면 제어권 가져오기를 선택할 수 있습니다.

원격 대상의 편집과 삭제는 모두 해당 대상의 SSH 대상 편집 대화 상자에서 시작합니다. 터치 기기에서는 대상 카드를 먼저 눌러 편집 버튼을 표시할 수 있습니다. 삭제 시 먼저 확인을 요구하고, 활성 세션이 있으면 세션 종료 후 삭제를 다시 확인합니다. 확인할 때 대상의 수정 상태도 다시 검사하여 다른 관리자가 변경한 오래된 화면에서 잘못 삭제하지 않게 합니다. 성공하면 대상과 암호화된 자격 증명이 제거되며 세션 종료와 삭제는 되돌릴 수 없습니다.

모바일 사용

좁은 화면에는 제어 키, 수정 키, 탐색 키와 글꼴 도구가 표시됩니다. 브라우저가 클립보드를 읽지 못하면 터미널로 보내기 대화 상자에 직접 붙여넣습니다. 긴 명령, 대화형 편집, 장시간 작업과 파일 전송에는 로컬 SSH 클라이언트를 사용하십시오.

감사와 자격 증명

이벤트 센터는 SSH 대상 생성·수정·삭제, 호스트 지문 확인, 연결 테스트, 로컬 터미널 활성화·비활성화, 로컬 및 원격 세션의 생성·종료·Shell 종료·연결 유실을 기록합니다. 로컬 이벤트에는 로컬 백엔드, 실행 계정 및 특권 계정 여부가 표시됩니다. 감사에는 터미널에 입력한 개별 명령이 기록되지 않으므로 명령 단위 감사가 필요하면 대상 시스템이나 호스트에 별도로 구성해야 합니다.

애플리케이션 백업에는 원격 SSH 대상과 보호된 자격 증명이 포함되므로 내보낸 파일도 민감한 자격 증명처럼 보호해야 합니다. 대상을 삭제한 뒤에는 서버에서 불필요한 계정이나 공개 키도 폐기하십시오. 백업에는 활성 터미널 세션과 로컬 터미널 활성화 설정이 포함되지 않습니다. 복원 후 로컬 터미널은 비활성화된 상태로 유지되며 새 호스트에서 실행 계정, Shell 및 초기 디렉터리를 다시 확인한 뒤 수동으로 활성화해야 합니다.

문제 해결

  • 지문을 가져오지 못함: fn-knock에서 이름을 확인하고 SSH 포트에 도달할 수 있는지 검사합니다. 지문이 다르면 인증을 중단하고 DNS, 재설치, 키 교체 기록을 확인합니다.

  • 연결 테스트 실패: 사용자, 비밀번호 또는 키 형식, 키 암호, 허용된 인증 방식과 대화형 PTY 지원을 확인합니다.

  • 세션 복구 실패: 연결 단계와 오류를 확인합니다. Shell이 종료되었거나 SSH 연결이 끊겼거나 원격 대상 설정이 변경되었거나 로컬 터미널이 비활성화되었거나 fn-knock 터미널 서비스가 다시 시작되었을 수 있습니다. 대상과 플랫폼 기능을 확인한 뒤 새 세션을 만듭니다.

  • 읽기 전용: 다른 브라우저가 세션을 제어 중입니다. 작업을 방해하지 않을 때만 제어권을 가져오거나 별도 세션을 만듭니다.

  • 이벤트 센터 및 알림

  • SSH 보안

  • 보안 경계 및 기준

QQ 커뮤니티: 1081609274