Skip to content

[ feat ] ssh 실행 시 docker-tf bash 나오는 현상 해결 및 v260501 버전 과 v260403 병합 #31

Description

@dongmin0204

🛠️ 계획된 개발 기능

  • SSH 접속 시 docker-tf bash 프롬프트 노출 현상 수정
    • 로그인 셸(ssh user@host) 진입 시 docker-tf bash 컨테이너 프롬프트가 사용자에게 그대로 노출되는 문제 해결
    • 비로그인 인터랙티브 SSH(ssh user@host 또는 두 번째 세션 등)에서는 정상적으로 이전 SSH 창처럼
      동작하므로, 로그인 셸 분기에서 발생하는 bash 주입 시 문제 발생으로 예상
  • decs260501 브랜치(v260501) < -- > 현재 브랜치 베이스인 v260403 병합
    • 두 라인에 누적된 변경사항을 통합하여 decs260505 브랜치로 생성

🛠 기능 구현 세부사항

  1. SSH 진입 시 docker-tf bash 프롬프트 노출 수정
  • 원인 추정: 로그인 셸 진입 경로(예: /etc/profile.d/*, .bash_profile 등)에서 docker exec ... bash 류의 명령이 인터랙티브하게 주입(exec) 되면서 외부 셸이 컨테이너 셸로 치환됨
  • 해결 방향:
    • 로그인 셸과 비로그인 인터랙티브 셸의 진입 분기를 명확히 구분 (shopt -q login_shell / $- == i)
    • 컨테이너 진입은 명시적 트리거(예: 사용자가 직접 호출하는 wrapper)로만 수행하고, 기본 SSH 로그인 흐름에서는
      exec docker ...를 제거 또는 가드
    • 필요한 경우 sshd_config 스크립트 점검
    • MOTD / update-motd.d 출력이 컨테이너 컨텍스트에서 중복 실행되지 않도록 정리 [ bug ] 의도되지 않은 MOTD 출력 방지 #24 (이슈 확인해보기)
  1. v260501 <--> v260403 병합
  • 베이스 브랜치: decs260403 (현재 decs260505의 베이스)
  • 머지 대상: origin/decs260501
  • 작업 절차:
    a. decs260505에서 origin/decs260501 머지 (또는 통합 브랜치 신규 생성)
    b. 충돌 발생 시 우선순위:
    - 보안/계정 정책 강화(443aaae, e2e8442, 296d5b7, c96b127) 관련 변경은 현재 브랜치(v260403 라인) 우선 유지
    • v260501 라인의 신규 기능은 가능한 한 보존
      c. 머지 후 SSH 진입(로그인/비로그인), 컨테이너 기동, sudo 권한 축소 동작 회귀 테스트

🛠 참고사항

  • 비로그인 인터랙티브 SSH에서는 정상 동작하므로, 수정 시 로그인 셸 경로만 건드리고 비로그인 경로는 회귀 없이
    유지해야한다.
  • 최근 비-root 실행 전환 및 gosu 도입이후 발생한 증상일 가능성이 있어, 해당 커밋 전후 진입
    스크립트 동작 비교 필요
  • v260501에는 [ bug ] 의도되지 않은 MOTD 출력 방지 #24 의도되지 않은 MOTD 출력 방지가 포함되어 있어, 본 SSH 프롬프트 이슈와 상호작용 가능성
    있음 -> 머지 후 MOTD/프롬프트 동시 검증

📝 check-lists

  • 로그인 SSH(ssh user@host) 진입 시 호스트 셸 프롬프트로 정상 진입 확인
  • 비로그인 인터랙티브 SSH 진입 시 기존 동작(이전 SSH 창과 동일) 유지 확인
  • docker-tf 컨테이너는 명시적 호출 시에만 진입되도록 동작 확인
  • MOTD 중복/누락 없는지 확인 [ bug ] 의도되지 않은 MOTD 출력 방지 #24
  • decs260501 <--> decs260403 머지 충돌 해결 및 빌드/기동 정상 확인
  • sudo 권한 축소 및 비-root 실행 동작 회귀 없는지 확인
  • gosu 권한 전환 흐름 정상 확인
  • 머지 후 계정 보호 정책 유지 확인

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions