피드로 돌아가기
Dev.toSecurity
원문 읽기
Paramiko 기본 설정 최적화로 SSH IP Ban 문제 완전 해결
When paramiko's defaults silently get your IP banned — the look_for_keys and allow_agent trap
AI 요약
Context
Paramiko의 look_for_keys 및 allow_agent 기본값인 True 설정으로 인해 다수의 SSH 키를 보유한 환경에서 의도치 않은 인증 시도가 반복 발생. 이는 서버의 MaxAuthTries 임계치를 초과하여 fail2ban과 같은 보안 메커니즘에 의한 IP 차단을 유발하는 구조적 결함으로 작용.
Technical Solution
connect_kwargs내look_for_keys와allow_agent를False로 명시하여 지정된pkey외의 추가 인증 시도 원천 차단- 단일 연결 시 발생하는 인증 실패 횟수를 1회로 제한하여 서버 측
MaxAuthTries초과 가능성 제거 - 코드 전역의
Connection(...)호출부를 전수 조사하여 총 10개 지점의 설정 누락분을 일괄 수정 - 자동 수정 및 재시도 로직이 포함된 Warning UI를 제거하여 실패 횟수가 증폭되는 UX 패턴의 부작용 방지
- AST(Abstract Syntax Tree) 기반의 회귀 테스트를 도입하여
connect_kwargs내 필수 옵션 누락 시 빌드를 실패시키는 강제 제약 조건 설정
실천 포인트
- Paramiko 사용 시 `look_for_keys=False`, `allow_agent=False` 설정을 기본으로 검토할 것 - 에러 발생 시 '경고-수정-재시도'로 이어지는 자동화 UX가 실패 횟수를 증폭시켜 보안 차단을 유발하는지 확인할 것 - 유사한 패턴의 버그 발견 시 전역 Grep 후 AST 기반의 회귀 테스트 코드를 작성하여 배포 파이프라인에 통합할 것