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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
authkeysync — 🔐 원격 URL의 SSH 공개 키를 로컬 authorized_keys 파일로 동기화하도록 설계된 경량 CLI 유틸리티 | Kitploit
도구/GitHubGitHub/eduardolat/authkeysync
Authentication & AuthorizationCloud Infrastructure SecurityScripting & AutomationConfiguration AuditingDevSecOpsAuthentication
GitHubeduardolat/authkeysync

authkeysync

🔐 원격 URL의 SSH 공개 키를 로컬 authorized_keys 파일로 동기화하도록 설계된 경량 CLI 유틸리티

저장소 보기
288개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

AuthKeySync 로고

AuthKeySync

원격 URL의 SSH 공개 키를 서버에 자동으로 동기화합니다

CI Status Go Report Card Release Version License

📖 전체 문서

문제점

여러 서버에서 SSH 접근을 관리하는 것은 정말 번거롭습니다:

  • 팀원이 합류하거나 퇴사하면 모든 서버의 authorized_keys를 업데이트해야 합니다
  • 개발자가 SSH 키를 교체하면 이제 업데이트할 서버가 20대가 됩니다
  • Infrastructure as Code를 사용 중이지만 SSH 키 관리는 여전히 수동입니다
  • 키 관리를 위한 자체 제작 bash 스크립트는 종종 제대로 작성되지 않았거나, 안전하지 않거나, 서버에서 잠길 수 있는 미묘한 버그가 있습니다
  • GitHub/GitLab 키를 사용하고 싶지만 모든 곳에 복사하는 것은 지루합니다

해결책

AuthKeySync는 URL(GitHub, GitLab, 자체 API)에서 SSH 공개 키를 가져와 서버에 동기화하는 경량 CLI입니다. 안전하고 신뢰할 수 있으며 자동화를 위해 설계되었습니다.

root@kitploit:~
# /etc/authkeysync/config.yaml
users:
  - username: "deploy"
    sources:
      - url: "https://github.com/your-username.keys"
      - url: "https://github.com/another-username.keys"

authkeysync를 (수동으로 또는 cron을 통해) 실행하면 authorized_keys가 업데이트됩니다. 이것이 전부입니다.

주요 기능

  • 단일 바이너리: 의존성 없음, 다운로드 후 실행만 하면 됩니다
  • 기본적으로 안전: 기존 로컬 키를 보존하고, 백업을 생성하며, 원자적(atomic) 쓰기를 사용합니다
  • 장애 안전(Fail-safe): 소스 중 하나라도 실패하면 잠금을 방지하기 위해 업데이트가 중단됩니다
  • 유연한 소스: GitHub, GitLab 또는 일반 텍스트 SSH 키를 반환하는 모든 URL
  • API 지원: 인증된 API를 위한 사용자 지정 헤더가 포함된 POST 요청
  • IaC 지원: 상태 비저장(stateless), 멱등성(idempotent), Ansible/Terraform/cloud-init에 적합
  • 크로스 플랫폼: Linux 및 macOS(AMD64 및 ARM64) 지원

빠른 시작

1. 다운로드

릴리스 페이지에서 최신 바이너리를 받으세요:

root@kitploit:~
# Linux AMD64
curl -Lo authkeysync https://github.com/eduardolat/authkeysync/releases/latest/download/authkeysync-linux-amd64
chmod +x authkeysync
sudo mv authkeysync /usr/local/bin/

2. 설정

/etc/authkeysync/config.yaml에 구성 파일을 생성하세요:

root@kitploit:~
policy:
  backup_enabled: true # Create backups before changes (default: true)
  backup_retention_count: 10 # Number of backups to keep (default: 10)
  preserve_local_keys: true # Keep keys not in remote sources (default: true)

users:
  - username: "root"
    sources:
      - url: "https://github.com/your-username.keys"

3. 실행

root@kitploit:~
# Test first with dry-run
sudo authkeysync --dry-run

# Apply changes
sudo authkeysync

4. 자동화

주기적으로 실행되도록 cron 작업 또는 systemd 타이머를 설정하세요:

root@kitploit:~
# Every 5 minutes (use --quiet to reduce log noise in cron)
echo "*/5 * * * * root /usr/local/bin/authkeysync --quiet" | sudo tee /etc/cron.d/authkeysync

구성 옵션

정책(모두 선택 사항)

사용자(필수)

옵션유형필수설명

소스

모든 옵션을 포함한 예시

root@kitploit:~
policy:
  backup_enabled: true
  backup_retention_count: 10
  preserve_local_keys: true

users:
  - username: "deploy"
    sources:
      # Simple GitHub keys
      - url: "https://github.com/your-username.keys"

      # Private API with authentication
      - url: "https://keys.yourcompany.com/api/keys"
        method: "POST"
        headers:
          Authorization: "Bearer your-secret-token"
          Content-Type: "application/json"
        body: '{"environment": "production"}'
        timeout_seconds: 5

CLI 옵션

종료 코드

코드의미
0성공: 모든 사용자가 처리되거나 건너뜀
1실패: 최소 한 명 이상의 사용자 동기화 실패

작동 방식

  1. 가져오기(Fetch): 구성된 URL에서 SSH 키를 다운로드합니다
  2. 구문 분석(Parse): 모든 소스의 키를 검증하고 중복을 제거합니다
  3. 병합(Merge): 선택적으로 로컬에만 존재하는 키를 보존합니다
  4. 쓰기(Write): 적절한 권한으로 authorized_keys를 원자적으로 업데이트합니다
  5. 백업(Backup): 변경 전에 타임스탬프가 포함된 백업을 생성합니다

소스 가져오기에 실패하면 AuthKeySync는 잠금을 방지하기 위해 해당 사용자의 업데이트를 중단합니다. 기존 접근 권한은 그대로 유지됩니다.

프로젝트 지원

AuthKeySync가 유용하다고 생각되시면 GitHub에서 Star를 눌러주시고 X(Twitter)에서 업데이트를 팔로우해 주세요:

  • GitHub에서 Star 누르기
  • X에서 @eduardoolat 팔로우하기

라이선스

MIT 라이선스. 자세한 내용은 LICENSE를 참조하세요.

도구 다운로드
옵션유형기본값설명
backup_enabledbooltrueauthorized_keys 수정 전에 백업 생성
backup_retention_countint10사용자별로 유지할 백업 파일 수
preserve_local_keysbooltrue원격 소스에 없는 기존 키 유지
usernamestring예시스템 사용자 이름(예: root, deploy)
sourceslist예키 소스 목록
옵션유형기본값설명
urlstring(필수)일반 텍스트 SSH 키를 반환하는 URL
methodstringGETHTTP 메서드: GET 또는 POST
headersmap{}사용자 지정 HTTP 헤더(예: 인증용)
bodystring""POST 요청 본문
timeout_secondsint10요청 제한 시간(초)
옵션설명
--config <path>구성 파일 경로(기본값: /etc/authkeysync/config.yaml)
--dry-run파일을 수정하지 않고 동기화 시뮬레이션
--debug디버그 로깅 활성화(가장 상세함)
--quiet경고 및 오류만 표시(cron에 권장)
--silent오류만 표시(가장 조용함)
--version버전 정보 표시 후 종료
--help도움말 메시지 표시