
Bastillion v5.2.0
Bastillion은 모든 시스템에 대한 SSH 접근을 브라우저 기반으로 깔끔하게 관리할 수 있는 방법을 제공합니다—마치 친숙한 대시보드를 갖춘 배스천 호스트와 같습니다.
Bastillion
현대적인 웹 기반 SSH 콘솔 및 SSH 키 관리 도구입니다.
Bastillion은 모든 시스템 전반의 SSH 접근을 관리할 수 있는 깔끔한 브라우저 기반 방법을 제공합니다 — 마치 친근한 대시보드를 갖춘 배스천 호스트처럼 말이죠. 이 도구는 두 가지 일을 합니다:
-
웹 기반 SSH 터미널 — 호스트가 등록되면, 권한이 부여된 사용자는 브라우저에서 직접 하나 이상의 실시간 터미널 세션을 열 수 있으며, 명령을 모든 열린 세션에 한 번에 브로드캐스트할 수도 있습니다 (tmux의 동기화된 창을 떠올려 보세요. 다만 로컬 창이 아닌 원격 호스트 집합에 대한 것입니다).
-
SSH 키 관리 — Bastillion은 자체 SSH 키 쌍을 보유하고, 등록한 호스트 전반에 공개 키를 푸시/교체하므로, 개별 사용자가 해당 시스템에 대한 장기 키를 직접 보유하거나 관리할 필요가 없습니다.
- 2단계 인증(Authy 또는 Google Authenticator)으로 로그인
- SSH 공개 키를 관리 및 배포하고, 중앙에서 비활성화/교체
- 안전한 다중 세션 웹 셸을 실행하고 세션 간에 명령 공유
- 모든 세션을 기록하고 필요 시 재생 — 모든 컴플라이언스 프레임워크에 대비한 감사 증거
- 시스템을 프로필로 그룹화하고 누가 무엇에 접근할 수 있는지 정확히 제어
- 복합 스크립트를 저장하고 전체 호스트 집합에 한 번에 재실행
- 추가 보호를 위해 SSH 위에 TLS/SSL을 적층

기존 웹 및 애플리케이션 예제 호스트에 대한 두 개의 실시간 SSH 세션.
목차
작동 방식
Bastillion은 사용자와 사용자가 접근해야 하는 시스템 사이에 위치하며, 단순한 비밀번호 금고가 아닌 신뢰할 수 있는 제3자 역할을 합니다. 전체 수명 주기를 처음부터 끝까지 살펴보겠습니다.
1. Bastillion이 자체 SSH 키 쌍을 생성
최초 시작 시, 무엇보다 먼저 Bastillion은 자신을 위한 Ed25519 키 쌍을 생성합니다 — 이것이 호스트에 푸시되는 유일한 키입니다. 이 키는 콘솔 출력에 표시되며 Settings에서 항상 확인할 수 있습니다.
2. 시스템 등록
관리자가 Manage → Systems에서 호스트를 추가합니다(사용자, 호스트, 포트, 그리고 해당 호스트의
authorized_keys 파일 경로). Bastillion은 사용자가 제공한 비밀번호 또는 암호 문구로 한 번 인증한 다음,
자신의 공개 키를 해당 호스트의 authorized_keys에 푸시합니다. 이후부터는 해당 키를 사용하여 연결합니다 —
저장된 비밀번호는 절대 없습니다. 키가 배치되는 즉시 상태가 Success로 바뀝니다.

3. 시스템을 프로필로 그룹화하고 사용자 할당
시스템은 이름이 지정된 프로필로 그룹화됩니다 — "Production", "Staging", "Database Tier" 등을 생각해 보세요. 그런 다음 사용자는 Manage → Users에서 프로필에 연결되며, 이것이 누가 무엇에 접근할 수 있는지를 제어하는 유일한 수단입니다. 프로필 할당을 취소하면 해당 접근 권한은 즉시 사라지며, 키 교체는 필요하지 않습니다.

4. 터미널 열기 — 그리고 한 번에 모든 터미널로 브로드캐스트
할당된 사용자는 Secure Shell → Terminals를 열고 하나 이상의 시스템을 선택하면, 브라우저에서 나란히 배치된 실시간·크기 조절 가능한 xterm 기반 터미널을 사용할 수 있습니다. 한 번 입력하면 활성으로 표시된 모든 터미널로 전달됩니다 — 선택한 호스트 수에 관계없이 동일한 키 입력, 동일한 명령, 동일한 출력 형태가 적용됩니다.

5. 키를 중앙에서 교체하거나 폐기
모든 호스트가 (사용자별 키가 아닌) 동일한 애플리케이션 키를 신뢰하기 때문에, Manage SSH Keys에서 한 번 비활성화하면 모든 곳에서 즉시 접근이 폐기됩니다 — 대상 시스템을 직접 건드릴 필요도, 어느 서버에 어떤 오래된 키가 있는지 찾아다닐 필요도 없습니다.

6. 호스트가 주장하는 신원인지 확인
모든 연결은 대상 시스템이 제시하는 호스트 키를 Bastillion이 기록한 키와 대조하여 검사합니다. 호스트가 처음 확인되면 그 키가 기록되고 신뢰됩니다. 이후 해당 키가 변경되면 연결이 거부되고, 해당 시스템은 Manage → Host Keys에 changed — blocked로 표시되며, 승인된 지문과 제시된 지문을 함께 보여주므로 재구축된 호스트와 가로채진 연결을 구분할 수 있습니다. 새 키를 신뢰하는 것은 의도적이고 기록되는 행위입니다.
이는 노트북보다 배스천에서 더 중요합니다. Bastillion은 대상 시스템에 개인 키를 전달하며, 인증 폴백 시에는 사용자가 제공한 비밀번호나 패스프레이즈도 전달합니다 — 따라서 관리 대상 시스템의 주소에서 응답할 수 있는 무엇이든 해당 시스템의 자격 증명을 수집할 수 있습니다. 이 검사가 존재하기 전까지는 그 키를 어떤 것과도 비교하지 않았습니다.
hostKeyVerification=strict로 설정하면 새로 확인된 호스트에 대한 첫 연결 전에 관리자의 승인을 추가로 요구하며, off로 설정하면 이전 동작으로 되돌립니다 — Configuration을 참조하세요.
7. 모든 세션이 기록됨 — 감사 및 재생
해당 터미널에서 입력된 모든 내용과 반환된 모든 바이트가 자동으로 기록됩니다. 관리자는 Audit Sessions를 열고 사용자 또는 시스템으로 필터링한 뒤, 어떤 세션이든 재생할 수 있습니다 — 여러 호스트에 걸친 세션은 나란히 표시되며, 중요한 줄로 바로 이동할 수 있는 텍스트 필터도 제공됩니다. 출력은 페이지가 로드되는 동안 스트리밍되므로, 수백 메가바이트의 로그를 덤프한 세션도 무리 없이 재생됩니다.
감사자에게 누가 무엇을 어디서 언제 실행했는지 보여줘야 한다면 — 이것이 바로 그 증거이며, 기본 제공됩니다. 사실상 모든 컴플라이언스 프레임워크에는 어딘가에 특권 접근 감사 추적 요구 사항이 있습니다 (PCI DSS, HIPAA, SOC 2, ISO 27001 — 해당되는 것을 선택하세요). 이것은 상용 PAM 제품 없이도 그 요구 사항을 충족합니다. 세션은 기본적으로 90일 동안 보관되며(deleteAuditLogAfter), ENABLE_INTERNAL_AUDIT=false로 기록을 끌 수 있습니다 — Auditing을 참조하세요.

🚀 새로운 기능
- SSH 호스트 키 검증 — 관리 대상 시스템이 제시하는 키는 최초 연결 시 기록되고 이후 모든 연결에서 확인됩니다. 키가 변경되면 연결이 차단되며 관리자가 해결할 수 있도록 Manage → Host Keys에 표시됩니다. 기본적으로 활성화됨
(
hostKeyVerification=accept-new) — 작동 방식 참조 - SSH 인증서 인증 (선택 사항) — Bastillion은 각 호스트의
authorized_keys에 공개 키가 있는 것에 의존하는 대신 연결마다 단기 인증서에 서명할 수 있으며, 이는 대상 호스트 자체의 인증 로그에 Bastillion 사용자 이름을 남깁니다. 기본적으로 비활성화됨. 각 호스트가 CA를 신뢰하도록 구성해야 함 — 구성 참조 - SAML 2.0 SSO — 엔터프라이즈 IdP(Entra ID, Okta, ADFS 등)를 통해 로그인 — 구성 참조
- 라이선스 — 최대 8개 시스템까지 무료, 유료 등급은 loophole.company/pricing.html에서 이용 가능 (아래 라이선스 참조)
- 세션 감사 및 재생, 기본적으로 활성화됨 — 모든 터미널 세션이 기록되며 Audit Sessions에서 재생할 수 있고, 브라우저로 스트리밍되므로 매우 큰 세션도 즉시 로드됨
- 자체 포함 jar(
java -jar)로 실행되며 HTTPS를 기본 제공 — 다운로드 및 실행 참조 - Java 21, Jetty 12, Jakarta EE 10으로 업그레이드됨
- Ed25519(기본) 및 Ed448 SSH 키 완전 지원
- 기존 v4 인스턴스에서 사용자, 시스템, 키, 감사 로그를 가져오는 v4 마이그레이션 도구 — 중간 5.x 설치 없이 6.x로 바로 가져옴 —
tools/migrate참조 - CSRF 필터 및 앱 전체 보안 헤더로 강화됨
라이선스
Bastillion은 최대 8개의 등록된 시스템까지 라이선스 없이 실행됩니다 — 구매 전에 실제로 사용해 보기에 충분합니다. 라이선스를 구매하면 이 상한이 높아집니다.
- **loophole.company/pricing.html**에서 라이선스를 구매하세요
(Starter/Team/Business — 시스템 수에 따라 가격 책정). 결제 후 리다이렉트되어
.lic파일이 자동으로 다운로드됩니다. .lic파일을 열고 내용(한 줄)을 복사하세요.LICENSE_KEY환경 변수를 통해 설정하세요:
또는export LICENSE_KEY=<paste license file contents here>BastillionConfig.properties의licenseKey에 붙여넣으십시오 — 둘 다 설정된 경우 환경 변수가 우선합니다.- Bastillion을 재시작하십시오. Settings에는 라이선스 사용자, 시스템 상한, 만료일이 표시되며, 만료 90일 전부터 경고가 나타납니다.
라이선스는 연간 단위이며 자동 갱신되지 않습니다 — 카드 정보는 보관되지 않습니다. 만료 경고를 받으면 동일한 가격 페이지에서 다시 구매하십시오.
설치 옵션
무료: https://github.com/Loophole-LLC/Bastillion/releases