Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ssh-chatter — ssh-chat (현대 C 언어로 구현) | Kitploit
도구/GitHubGitHub/gosuda/ssh-chatter
Encryption/Decryption ToolsScripting & AutomationNetwork SecurityCTFPrivacyUtilities & FrameworksAuthenticationLearning & EducationAI Security
GitHubgosuda/ssh-chatter

ssh-chatter

ssh-chat (현대 C 언어로 구현)

3329일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

SSH-Chatter: TUI 게시판 시스템 (C 언어)

Logo

ssh [email protected]

일반 BBS 소프트웨어

SSH-Chatter는 Go ssh-chat 서버의 C 재구현에서 시작되었습니다. 현대적인 C 패턴과 소규모의 테스트 가능한 코어를 사용하면서 원래 동작을 반영/확장합니다. 이 서버는 SSH/TELNET 연결을 수신 대기하며, 인증된 모든 사용자를 공유 채팅방에 배치하여 Go 참조 구현과 동일한 명령 표면을 제공합니다.

C를 이해하는 데 왜 그렇게 오래 걸리는지 아시나요? 그것은 본능이기 때문입니다.

최근 개선 사항

  • 터미널 친화적인 RSS 리더: /rss list, /rss read <tag> 명령어로 접근 가능하며, /rss add <url> <tag> 및 /rss del <tag> (운영자 전용)를 통해 방에서 함께 헤드라인을 탐색할 수 있습니다.
  • Gemini/Ollama 중재 백엔드를 사용하여 범죄나 유해 자료를 광고하는 게시물을 제거하는 백그라운드 BBS 감시 스레드, 그리고 특정 채팅 기록 정리를 위한 /delete-msg 명령어.
  • /bbs 명령어는 태그, 댓글, 부밍, 다중 줄 편집기를 갖춘 몰입형 레트로 게시판 시스템을 잠금 해제합니다.
    • 동적 정렬 (Reddit/Discord 스타일): list [hot|top|new|bumped|all] 명령어를 사용하여 bumped (최근 활동), hot (점수 및 댓글 기준 트렌드), top (가장 높은 순 추천 점수), 또는 new (생성 날짜)로 정렬된 게시물을 봅니다.
    • 검색 (Google 검색 방식): search <query>로 게시물 제목, 본문, 작성자, 태그를 대소문자 구분 없이 즉시 검색합니다.
    • 추천/댓글 배지 (Reddit/Discord 스타일): 목록에 순 추천 점수와 댓글 수를 색상화된 상태 배지(▲ 12 💬 5)로 직접 표시합니다.
    • 원활한 탐색: 게시물 읽기 중 Enter를 누르면 대시보드 목록으로 즉시 돌아가고, 목록 화면에서 Enter를 누르면 목록을 새로 고칩니다. BBS 모드 내에서 /bbs 접두사 없이 명령어를 자동으로 라우팅합니다.
  • /asciiart 라이브 편집기: 640줄 제한, IP당 10분 쿨다운, 여러 줄 출력, Ctrl+A로 취소, Ctrl+S 또는 로캘 인식 기본값 >/__ARTWORK_END>로 제출하는 키보드 단축키 제공.
  • 생일 등록을 위한 /birthday, LAN 운영자가 주소별로 권한을 위임할 수 있는 /grant <ip>, 그리고 최상위 LAN 관리자가 권한을 회수할 수 있는 /revoke <ip> 명령어.
  • 채팅 UI 새로 고침: 기록과 입력 사이의 깔끔한 구분선, 전송 후 즉시 입력 지우기, 친숙한 "잠시만 기다려주세요..." 배너.
  • 쉬운 비교와 언어 기반 이름 개수를 특징으로 하는 친숙한 다국어 캡차.
  • 비라틴 문자에 대한 닉네임 지원 확장 및 사용자 이름과 함께 원시 IP 주소를 허용하는 /ban 업그레이드.
  • 빠른 글로벌 일기 예보를 위한 /weather <city>.
  • 투표, 상태 메시지, Eliza 중재자가 제거되어 간소화된 경험.

미리보기

Preview

Preview

저장소 구조

코드베이스는 의도적으로 간결하게 구성되어 있어 새로운 기여자가 빠르게 탐색할 수 있습니다:

아키텍처

Architecture

main 브랜치와 최신 상태 유지

work 브랜치는 업스트림 개발과 정기적으로 분기되어 대규모 기능이 프로덕션 트래픽을 방해하지 않고 배양될 수 있도록 합니다. main과 동기화할 때가 되면 최신 트리를 풀(pull)하고 로컬에서 병합한 후 풀 리퀘스트를 여십시오:```bash git fetch origin main git checkout work git merge --no-ff origin/main

root@kitploit:~
충돌을 제자리에서 해결하고 (`src/host_aggregate.c` 헬퍼 루틴은 이미 `main`의 레이아웃을 반영하므로 일반적으로 병합은 간단합니다) `make`를 실행하여 푸시하기 전에 빌드가 여전히 성공하는지 확인하세요.

## 자동화 훅

- `host_snapshot_last_captcha`는 가장 최근에 생성된 캡챠 프롬프트와 답변을 타임스탬프와 함께 노출하여 외부 클라이언트가 무인 자동화를 대신하여 챌린지를 전달할 수 있도록 합니다.

## 보안 강화

- `scripts/safe_permission.sh`는 런타임 데이터 파일(BBS 상태, 투표 상태, 쿨다운 스냅샷, 일반 채터 상태)의 소유권과 모드를 강화합니다. 배포 후 실행하여 데이터 디렉토리를 `ssh-chatter`로 제한하고 각 파일이 `0600`으로 설정되도록 합니다. 명시적 경로를 전달하거나 실행 전에 `STATE_ROOT` 또는 해당 `CHATTER_*_FILE` 환경 변수를 내보내 대상을 재정의합니다.
- 백그라운드 BBS 와치독은 주기적으로 게시물과 댓글을 AI 중재 파이프라인(기본 Gemini, Ollama 대체)에 전달합니다. 플래그된 게시물은 자동으로 제거되고 방에 공지가 전송됩니다.
- 채팅 메시지, ASCII 아트, BBS 게시물/댓글은 AI 중재 파이프라인을 통해 흐릅니다. `CHATTER_SECURITY_AI=on`으로 활성화합니다 (Gemini의 경우 `GEMINI_API_KEY` 설정; 데몬은 자동으로 `http://127.0.0.1:11434`의 로컬 Ollama 엔드포인트로 대체합니다). `CHATTER_SECURITY_FILTER=off`로 모든 것을 비활성화합니다. 모든 공급자가 실패하면 필터는 자동으로 비활성화되어 콘텐츠를 자동으로 삭제하는 대신 대화가 계속 흐르도록 합니다.
- SSH 전송은 최신 키 교환, 암호화, MAC으로 고정되며 모든 브리지 페이로드는 삼중 AES-256-GCM 양파로 감싸져 중계기는 암호문만 볼 수 있습니다.
- 계층형 필터를 작동시키는 의심스러운 제출은 이제 IP별로 추적됩니다. 반복된 적중 시 활성화되면 자동 킥 및 밴이 트리거되는 반면, 빠른 재연결 감지기는 더 긴 복구 기간을 허용하여 불안정한 네트워크 세션이 불이익 없이 다시 참여할 수 있습니다. 자동 밴 항목은 **기본적으로 꺼져 있습니다**. 활성화하려면 `CHATTER_AUTO_BAN=on` (또는 `true`/`1`)을 설정하거나 변수를 설정하지 않은 상태로 두어 자동 밴 항목을 기록하지 않고 경고 및 제한을 유지합니다.
- 운영자는 `CHATTER_PROTECTED_IPS`로 신뢰할 수 있는 진입점(VPN 출구, 리버스 프록시, localhost)을 표시할 수 있습니다 (쉼표로 구분, 기본값 `127.0.0.1,::1,192.168.0.1`). 이로 인해 긴급 밴이 데몬을 자체 제어 평면에서 잠그지 않습니다.

## 파일 저장 및 전송

- 모든 사용자 관리 파일은 이제 `/etc/ssh-chatter/user-files`에 있습니다 (`CHATTER_FILESTORE_PATH`로 재정의, 레거시 대체: `CHATTER_FILE_STORAGE_ROOT`). 데몬은 필요한 경우 디렉토리를 생성하고 업로드를 해당 디렉토리로 제한합니다.
- SSH 클라이언트는 사용자 정의 래퍼 없이 표준 `scp`를 사용합니다. `/name.ext`를 저장소 트리의 루트로 간주합니다: `scp my.zip user@host:/demos/my.zip`은 `/etc/ssh-chatter/user-files/demos/my.zip`에 쓰고, `scp user@host:/readme.txt ./`는 `/etc/ssh-chatter/user-files/readme.txt`를 다운로드합니다.
- TELNET 클라이언트는 새로운 `/filestore` 명령을 사용합니다. `/filestore`는 사용 가능한 파일을 나열하고, `/filestore-upload`는 `rz` 세션을 시작하며, `/filestore-download <name>`은 `sz` 세션을 시작합니다. 서버에 `lrzsz` (또는 `rz`/`sz`를 제공하는 패키지)를 설치하여 ZMODEM 백엔드가 해당 헬퍼를 생성할 수 있도록 합니다.
- `/filestore-upload`는 선택적 대상을 허용합니다 (예: `/filestore-upload /kitten/meow.png`). SSH-Chatter는 `/kitten` 디렉터리를 자동으로 생성하고 업로드된 파일을 그곳에 배치하며, 이는 SCP가 `user@host:/kitten/meow.png`와 같은 경로를 사용하는 방식을 반영합니다.
- 두 전송 방식은 혼합하여 사용할 수 있습니다: 무인 스크립트 전송에는 SSH, 내장 ZMODEM 도구가 있는 복고풍 BBS 클라이언트에는 TELNET.

## 모스 릴레이
SSH-Chatter는 아마추어 햄 라디오 중계를 지원합니다.
이는 전역 모스 신호를 보여줍니다.
보려면 `/morse on`, 보내려면 `/morse-reply`.

### 프로토콜 세부사항

구현은 Binkp 프로토콜 사양을 따릅니다:
- 2바이트 헤더가 있는 표준 Binkp 프레임 구조
- 세션 비밀번호 인증 (CMD\_PWD/CMD\_OK)
- 60초마다 킵얼라이브 메커니즘 (CMD\_NUL)
- 메시지 동기화를 위한 사용자 지정 CHAT 명령 (CMD\_CHAT, 확장)

## 전제 조건

프로젝트를 빌드하려면 다음이 포함된 POSIX 환경이 필요합니다:

- C23 호환 컴파일러 (예: `gcc` 또는 `clang`)
- `make`
- `libssh` 개발 헤더 및 라이브러리 (Debian/Ubuntu에서는 `libssh-dev`)
- `libcurl` 개발 헤더 및 라이브러리 (Debian/Ubuntu에서는 `libcurl4-openssl-dev`)
- `uchardet` 개발 헤더 및 라이브러리 (Debian/Ubuntu에서는 `libuchardet-dev`)
- `icu` (International Components for Unicode) 개발 헤더 및 라이브러리 (Debian/Ubuntu에서는 `libicu-dev`)
- `lz4` 압축 라이브러리 및 개발 헤더 (Debian/Ubuntu에서는 `liblz4-dev`)
- POSIX 스레드 (일반적으로 시스템 `libpthread`에서 제공)
- `python3-pygments` (Tetris 위장 화면을 위한 `pygmentize` 하이라이터 제공)

Debian/Ubuntu에서는 다음 명령으로 의존성을 설치할 수 있습니다:```bash
sudo apt-get update
sudo apt-get install build-essential libssh-dev libcurl4-openssl-dev libuchardet-dev libicu-dev liblz4-dev

소스에서 빌드하기

리포지토리를 클론하고 제공된 Makefile을 사용하십시오:```bash make

root@kitploit:~
This produces an `ssh-chatter` binary in the repository root and a `libssh_chatter_backend.so` shared object that exposes the
translation helpers for reuse in other applications.  Clean intermediate artifacts with `make clean`.

### 공유 번역 백엔드 사용하기

The shared object reuses the server's C translation pipeline (including ANSI placeholder preservation) so other processes can
obtain translations without spawning the full SSH host.  Link against `libssh_chatter_backend.so` and include
`include/ssh_chatter/ssh_chatter_backend.h`:```c
#include "ssh_chatter/ssh_chatter_backend.h"

int main(void) {
  char translated[4096];
  char detected[64];

  if (ssh_chatter_backend_translate_line("Hello, world!", "ko", translated, sizeof(translated), detected, sizeof(detected))) {
    printf("Detected %s -> %s\n", detected, translated);
  }
}

환경 변수에 GEMINI_API_KEY (선택적으로 GEMINI_API_BASE 또는 GEMINI_MODEL)를 설정하여 헬퍼가 Google Generative Language API에 접근할 수 있도록 합니다. 이는 주 데몬의 런타임 요구 사항을 반영합니다. 채팅 서버를 시작하기 전에 ./scripts/test_gemini_connection.sh를 실행하여 자격 증명이 아웃바운드 호출을 허용하는지 확인할 수 있습니다. 이 스크립트는 원시 Gemini 응답을 출력하므로 요청이 성공했는지 확인할 수 있습니다.

수동으로 서버 실행하기

서버는 기본적으로 0.0.0.0:2222에서 수신 대기합니다. 사용 가능한 플래그를 사용하여 런타임 매개변수를 조정할 수 있습니다:``` Usage: ./ssh-chatter [-a address] [-p port] [-m motd_file] [-k host_key_dir] [-T telnet_port|off] [-J json_port|off] ./ssh-chatter [-h] ./ssh-chatter [-V]

root@kitploit:~
`-m`이 제공되면, 일일 메시지를 지정된 파일 경로에서 읽습니다.

일반적인 예:```bash
# Start the chat server on port 2022, loading host keys from /etc/ssh
./ssh-chatter -p 2022 -k /etc/ssh

# Enable telnet access on 0.0.0.0:4242 alongside SSH
./ssh-chatter -T 0.0.0.0:4242

# Serve a custom MOTD from a file and bind to localhost
./ssh-chatter -a 127.0.0.1 -m /etc/ssh-chatter/motd

호스트 키 디렉토리에는 ssh_host_rsa_key 파일(및 선택적으로 .pub 파일)이 포함되어야 합니다. 시스템 SSH 호스트 키를 재사용하지 않으려면 ssh-keygen -t rsa -b 4096 -f /path/to/dir/ssh_host_rsa_key로 키를 생성하십시오. ssh_host_ed25519_key 및 ssh_host_ecdsa_key라는 추가 호스트 키는 존재할 경우 자동으로 로드되어 서버가 키 교환 중 최신 알고리즘을 제공할 수 있습니다.

클라이언트로 연결하기

실행 중이면, SSH 클라이언트로 연결하십시오:```bash ssh -p 2222 user@server-address

root@kitploit:~
공개 서버는 `bbs.chatter.pw`에서 기본 SSH 포트로 이용 가능합니다:```bash
ssh -p 2222 [email protected]

SSH 프롬프트에서 제공된 사용자 이름이 채팅 닉네임으로 사용됩니다.

Telnet 클라이언트도 동일한 기능 세트로 접속할 수 있습니다. Telnet 리스닝은 기본적으로 2323 포트에서 활성화되며, -T 플래그로 조정하거나 비활성화할 수 있습니다. 바인드 주소를 재정의하려면 -T address:port를 제공합니다(생략 시 SSH 바인드를 상속받으며, 모든 인터페이스에서 수신 대기하려면 -T :4242와 같이 빈 호스트를 사용합니다). 예를 들어, 레트로 터미널에서 telnet으로 접속하려면:```bash telnet server-address 2323

root@kitploit:~
`-T off` (또는 `-T disable`)를 전달하여 telnet 리스너를 완전히 끌 수 있습니다.

### JSON line API

서버는 또한 자동화 및 외부 통합을 위해 TCP를 통해 JSON line protocol을 노출합니다. 기본적으로 포트 `34567`에서 수신하며, `-J`로 비활성화하거나 재구성할 수 있습니다:```bash
# Disable the JSON API
./ssh-chatter -J off

# Bind JSON API on a custom port
./ssh-chatter -J 0.0.0.0:45678

각 요청은 \n으로 종료되는 단일 JSON 객체입니다. 응답 및 채팅 이벤트도 JSON 객체이며, 새 줄로 구분됩니다. API는 일반 채팅 및 /poll, /vote, /image, /video, /audio, /files, /asciiart 플로우를 지원합니다.

이벤트 페이로드 (서버 → 클라이언트)```json {"type":"event","event":"message","payload":{"id":123,"username":"alice","message":"hello","created_at":1710000000,"system":false,"preserve_whitespace":false,"attachment":{"type":"none","target":"","caption":""}}}

root@kitploit:~
**요청 예시 (클라이언트 → 서버)**```json
{"type":"chat","id":1,"username":"alice","message":"안녕하세요"}
{"type":"image","id":2,"username":"alice","url":"https://example.com/cat.png","caption":"cat"}
{"type":"asciiart","id":3,"username":"alice","message":" /\\_/\\\\n( o.o )\\\\n > ^ <"}
{"type":"poll","id":4,"username":"op","is_operator":true,"question":"Favorite color?","options":["red","blue","green"]}
{"type":"poll","id":5,"username":"bob","action":"vote","choice":2}
{"type":"vote","id":6,"username":"op","label":"weekend","question":"Plan?","options":["hike","rest"],"allow_multiple":true}
{"type":"vote","id":7,"username":"bob","label":"weekend","action":"vote","choice":1}

응답은 id를 반환하며 status, message, 및 선택적 result 객체를 포함합니다:```json {"type":"response","id":4,"status":"ok","message":"poll started","result":{"poll":{"active":true,"allow_multiple":false,"id":10,"question":"Favorite color?","options":[{"index":1,"text":"red","votes":0},{"index":2,"text":"blue","votes":0}]}}}

root@kitploit:~
실행 가능한 예제를 보려면 `scripts/json_api_example.py`을(를) 참조하십시오:```bash
python3 scripts/json_api_example.py --url tcp://127.0.0.1:34567 --save /tmp/json_api_output.txt

systemd 서비스로 설치하기

systemd를 사용하는 시스템에서 설치를 자동화하는 도우미 스크립트가 제공됩니다:```bash sudo ./scripts/install_chatter_service.sh

root@kitploit:~
스크립트가 수행하는 작업:

1. 프로젝트를 컴파일합니다 (`make`).
2. 결과 바이너리를 `/usr/local/bin/ssh-chatter`에 설치합니다.
3. 전용 `ssh-chatter` 시스템 사용자 및 그룹을 생성합니다 (아직 존재하지 않는 경우).
4. 런타임 상태(SSH 호스트 키 포함)를 위한 `/var/lib/ssh-chatter`와 구성 파일을 위한 `/etc/ssh-chatter`를 생성합니다.
5. `/var/lib/ssh-chatter/ssh_host_rsa_key`가 없을 때 기본 RSA 호스트 키를 생성합니다.
6. `/etc/ssh-chatter/motd`에 기본 MOTD를 생성하고 환경 기반 조정을 위한 오버라이드 파일 `/etc/ssh-chatter/chatter.env`를 생성합니다.
7. `/etc/systemd/system/chatter.service`를 작성하고, `systemd`를 다시 로드하며, 서비스를 활성화하고 즉시 시작합니다.

결과 `chatter.service` 유닛은 적절한 기본값으로 서버를 시작하며, `CAP_NET_BIND_SERVICE` 권한을 부여하여 루트가 아닌 서비스 계정이 필요한 경우 권한 있는 포트에 바인딩할 수 있도록 합니다.

### 서비스 사용자 정의

`/etc/ssh-chatter/chatter.env`를 편집하고 서비스를 다시 시작하여 기본값을 조정할 수 있습니다:```bash
sudo systemctl edit chatter.service   # or edit the environment file directly
sudo systemctl restart chatter.service

지원되는 환경 변수는 다음과 같습니다:

  • CHATTER_BIND_ADDRESS – 바인딩할 IP 주소 (기본값 0.0.0.0).
  • CHATTER_PORT – 클라이언트에 노출되는 TCP 포트 (기본값 2222).
  • CHATTER_MOTD_FILE – 오늘의 메시지 파일 경로 (기본값 /etc/ssh-chatter/motd).
  • CHATTER_HOST_KEY_DIR – ssh_host_rsa_key를 포함하는 디렉터리 (기본값 /var/lib/ssh-chatter).
  • CHATTER_EXTRA_ARGS – ssh-chatter 호출에 추가되는 추가 인자.
  • CHATTER_VOTE_FILE – 투표 상태 파일 경로 (기본값 vote_state.dat).
  • CHATTER_GEMINI_COOLDOWN_FILE – Gemini 쿨다운 상태 파일 경로 (기본값 ).

위장 코드 스니펫: Tetris 위장 기능을 위해 런타임은 /var/lib/ssh-chatter/에 코드 스니펫 파일을 기대합니다. 이 저장소는 이제 ./camouflage/ 아래에 바로 사용할 수 있는 예제를 포함하고 있습니다 (c.txt, cpp.txt, java.txt, go.txt, js.txt, ts.txt, rust.txt). 설정 중에 런타임 디렉터리로 한 번 복사하십시오:```bash sudo install -d /var/lib/ssh-chatter sudo cp camouflage/*.txt /var/lib/ssh-chatter/

root@kitploit:~
복사된 파일을 편집하여 위장 화면이 활성화될 때 표시되는 내용을 사용자 정의할 수 있습니다.

이제 번역 지원은 Google Gemini API에 의존합니다. 활성화하려면 `chatter.env` 파일(또는 환경 변수)에 다음을 설정하세요:

- `GEMINI_API_KEY` – 번역 요청을 인증하는 데 사용되는 비밀 API 키.
- `GEMINI_API_BASE` – API 기본 URL을 재정의하는 선택적 값 (기본값: `https://generativelanguage.googleapis.com/v1beta`).
- `GEMINI_MODEL` – Gemini 모델 이름을 재정의하는 선택적 값 (기본값: `gemini-2.5-flash`).

번역이 활성화되면 채팅은 각 메시지를 원래 언어로 즉시 전달하고, Gemini 응답이 도착하면 번역된 텍스트가 포함된 들여쓰기된 캡션을 추가로 표시합니다. 반응 요약에도 동일한 캡션 스타일이 사용되므로 업데이트는 참조하는 메시지 바로 아래에 나타납니다.

인라인 캡션 삽입이 어색하게 느껴진다면 `/chat-spacing <0-5>`를 사용하여 미리 빈 줄의 작은 버퍼를 예약할 수 있습니다. 이 설정은 라이브 채팅 스레드에만 영향을 미치며, 게시판 콘텐츠는 예약 없이 계속 번역됩니다. 따라서 장문의 게시물에 영향을 주지 않고 자신의 세션에 맞게 간격을 조정할 수 있습니다.

번역 전환 및 언어 선택 설정은 `chatter_state.dat` 파일에 저장되므로, 재연결 시 향후 세션에서 동일한 구성을 자동으로 복원합니다.

서비스를 즉시 시작하지 않고 설치하려면 `SKIP_START=1`과 함께 스크립트를 실행하세요.

서비스 관리 명령어:```bash
sudo systemctl status chatter.service
sudo systemctl restart chatter.service
sudo systemctl disable --now chatter.service

기능 상태

구현됨

  • SSH 리스너: 연결을 협상하고 세션당 스레드를 생성합니다.
  • 로그인 캡차
  • -m 플래그 또는 서비스 관리 설정 파일을 통한 MOTD 전달.
  • 연결된 클라이언트를 위한 /help 명령어.
  • 서버 측에서 접속, 퇴장, 관리 명령어 시도(/ban, /poke) 로깅.
  • 모든 연결된 참가자에게 채팅 메시지 브로드캐스트.
  • 색상 팔레트
  • BBS 스타일 개인 메시지
  • 미디어 태그
  • 사용자 차단
  • 시계
  • 닉네임 변경
  • 채팅 스크롤
  • 사용자 목록 확인
  • 언어 번역
  • OpenWeather /weather
  • 레이블 기반 투표를 지원하는 명명된 설문조사: 다중 선택 /vote 투표와 단일 선택 /vote-single 대안, 텍스트 친화적 투표 단축키인 /elect <label> <choice> 포함.
  • /bbs를 통해 접근 가능한 레트로 게시판 시스템: 태깅, 댓글, 글 올리기(bumping), 로케일 인식 종료 문자(기본값 >/__BBS_END>)로 끝나는 대화형 편집기 포함.
  • /asciiart 편집기: 640줄 초안, IP당 10분 게시 제한, 여러 줄 전송, Ctrl+A/Ctrl+S 단축키 지원.
  • /game 허브: 기본 내장 게임으로 (원래 소비에트 시대 C 구현에서 변환) 및 포함, 두 게임 모두 또는 Ctrl+Z로 일시 중단 가능.

진행 중 / 계획됨

  • 로깅 이상의 중재 명령어 강제 실행.

기여하기

이슈 제출과 풀 리퀘스트를 환영합니다. 버그의 경우 재현 단계를 포함해 주시고, 변경 사항을 제출하기 전에 make가 성공하는지 확인해 주세요.

도구 다운로드
경로설명
src/main.c명령줄 파싱 및 프로세스 부트스트랩 (바인드 주소, 포트, MOTD, 호스트 키 디렉토리).
src/host_aggregate.c, include/ssh_chatter/host.h채팅 호스트 구현 – 세션 수명 주기, MOTD 처리, 향후 메시지 브로드캐스트 로직을 위한 훅.
src/host모듈식 호스트 서브시스템으로 src/host_aggregate.c를 통해 단일 번역 단위로 컴파일됩니다.
include/ssh_chatter데몬, 스트레스 도구, 번역 백엔드를 위한 공유 헤더.
include/ssh_chatter/contexts연결별 상태를 캡슐화하는 session_ctx_t 및 관련 구조체의 정의.
data/banner/bannerCHATTER_WELCOME_BANNER로 지정할 수 있는 샘플 환영 배너.
scripts/install_chatter_service.sh편리한 설치 스크립트로 바이너리를 빌드하고 /usr/local/bin 아래에 설치하며 systemd 유닛(chatter.service)을 연결합니다.
scripts/install_dependencies.shDebian/Ubuntu 시스템에서 빌드 전제 조건을 위한 최소 패키지 설치 프로그램.
gemini_cooldown.dat
  • CHATTER_SECURITY_FILTER – 계층형 보안 필터를 비활성화하려면 off/false/0으로 설정합니다 (기본적으로 활성화됨).
  • CHATTER_SECURITY_AI – AI 중재를 활성화하려면 on/true/1으로 설정합니다 (기본적으로 비활성화됨).
  • CHATTER_FILESTORE_PATH – 관리형 파일 저장소 경로를 재정의합니다 (기본값 /etc/ssh-chatter/user-files).
  • CHATTER_FILE_STORAGE_ROOT – 관리형 파일 저장소 경로의 레거시 대체 경로.
  • CHATTER_MAX_ALLOC_BYTES – 내부 메모리 관리자에서 단일 연속 할당 시도의 상한선입니다. 기본적으로 제한 없음 (SIZE_MAX)입니다. 하나의 할당에 하드 제한을 두려는 경우에만 설정하십시오. 0, unlimited, inf, 또는 infinity로 설정하면 명시적으로 제한이 해제됩니다.
  • tetris
    liargame
    /suspend!