한국어

개발자 도구 · Chmod 계산기

SSH 권한이 너무 열려 있음: ~/.ssh에 필요한 정확한 모드와 그 이유

· 그것이 중요한 이유

chmod 유닉스 액세스 제어

고유한 Unix 권한 비트 다이어그램으로 표시된 비공개 SSH 자료
원본 ToolAcre 벡터 일러스트레이션

OpenSSH는 다른 사용자가 읽거나 변경할 수 있는 키 및 Authorized_keys 파일을 거부합니다. 이 게시물에서는 예상되는 모드를 나열하고 StrictModes 검사에 대해 설명하며 이를 확인하는 방법을 보여줍니다.

id_ed25519에 대한 권한 0644이(가) 너무 열려 있습니다. 어제 작동했던 키가 새 시스템에 복사된 후 거부됩니다.

모드가 0644인 복사된 개인 키는 rw-r--r--로 디코딩됩니다. 소유자가 읽고 변경할 수 있으며, 그룹 및 기타 사용자가 읽을 수 있습니다. 대신 600 개인 파일 사전 설정은 rw------를 렌더링하고 해당 클래스를 비워 둡니다. 이는 비트를 정확하게 나타내지만 SSH 클라이언트가 키를 수락하거나 거부한 이유를 증명할 수는 없습니다.

관찰 모드를 개인 사전 설정과 비교합니다. 입력 0644, 644 및 0o644는 동일하며 600로 변경하면 소유자 읽기 및 쓰기는 유지하면서 그룹 읽기 및 기타 읽기가 제거됩니다. 생성된 명령은 비활성입니다. 클라이언트 동작, 소유권, ACL 및 저장소 의미 체계에는 이 변환기 이상의 증거가 필요합니다.

클라이언트가 확인하는 이유 — 다른 사람이 읽을 수 있는 개인 키는 더 이상 개인 키가 아니므로 ssh는 이를 신뢰하지 않습니다.

저장소는 600 "개인 파일"이라는 레이블을 지정하고 소유자 전용 액세스를 설명합니다. 산술은 해당 설명을 지원합니다. 6은 소유자에게 읽기 및 쓰기를 제공하는 반면 두 0은 그룹 및 기타에서 일반 권한을 제거합니다. 기호 결과는 rw------입니다. 이는 클라이언트가 승인한 것이 아니라 모드에 권한 부여가 없음을 증명합니다.

OpenSSH 구현, 매뉴얼, 구성 또는 런타임 메시지가 소스에 표시되지 않으므로 사전 설정에서 거부 정책을 설정할 수 없습니다. 계산기는 하나의 모드가 모든 오류를 해결한다고 약속하지 않으며 주요 내용을 검증하지도 않습니다. 이는 후보자가 소유자 클래스를 넘어서 읽기, 쓰기 또는 실행을 노출하는지 여부를 안정적으로 보여줍니다.

저장소 라벨은 600 비공개입니다. 클라이언트 거부 정책에는 OpenSSH 증거가 필요합니다.

StrictModes 동작은 여기서 구현되거나 확인되지 않습니다. 브라우저에는 SSH 서버, 홈 디렉터리 검사, 소유권 조회 또는 구성 입력이 없습니다. Authorized_keys를 참조하는지, 다른 ID가 디렉터리에 쓸 수 있는지 또는 설정이 적용되는지 여부를 알 수 없습니다. 모드에 들어가면 데몬 결정이나 파일 시스템 감사가 아닌 변환이 수행됩니다.

정확한 비트와 정확한 정책은 별개의 질문입니다. 600 모드는 rw------를 증명하고 700 모드는 rwx------를 증명합니다. 소유권을 식별하지도 않고 상위 디렉토리를 확인하거나 데몬을 모델링하지도 않습니다. 서버 문서와 파일 시스템 증거를 독립적으로 수집한 다음 계산기를 사용하여 출력을 StrictModes 판정 또는 전체 보안 감사로 표시하지 않고 관찰 내용을 디코딩합니다.

StrictModes 동작은 여기서 구현되거나 확인되지 않습니다.

모드 600 및 700은 개인 사전 설정으로 제공됩니다. 600 모드는 그룹이나 기타 권한 없이 일반 파일 소유자에게 읽기 및 쓰기를 제공합니다. 700 모드는 디렉터리에 대한 소유자 실행을 추가하여 항목 및 명명된 콘텐츠 액세스를 활성화하는 반면 다른 클래스는 일반 비트를 통해 아무것도 수신하지 않습니다. 계산기는 여전히 실제 소유자를 모릅니다.

기타 SSH 관련 파일 규칙은 외부에 유지됩니다. 공개 키와 Authorized_key가 관련될 수 있지만 저장소는 이에 대해 검증된 요구 사항을 제공하지 않습니다. 계산기는 644을 rw-r--r--로 디코딩할 수 있지만 SSH 허용을 인증할 수는 없습니다. 더 광범위한 요구 사항 표에는 이러한 소스와 기존 기사에 없는 신뢰할 수 있는 OpenSSH 증거가 필요합니다.

600 및 700은 개인 사전 설정으로 제공됩니다. 다른 SSH 파일 규칙은 외부에 유지됩니다.

지원되는 예제는 디렉터리를 감사하지 않고 목록 문자열을 변환합니다. 외부 출력에 -rw-r--r--가 표시되면 구문 분석기는 644을 반환합니다. rw------가 표시되면 600을 반환합니다. 매트릭스는 변경된 그룹 읽기 및 기타 읽기 상자를 강조 표시합니다. 이를 통해 경로, 소유권 및 목록 출처를 검토하지 않은 채로 전사 및 산술을 확인합니다.

디렉터리 문자열도 비슷하게 작동합니다. 제공된 drwx------는 9개의 권한 위치를 구문 분석하기 전에 인식된 유형 문자가 제거되므로 700이 됩니다. 요약에는 디렉터리 접두사가 표시될 수 있습니다. 페이지는 ~/.ssh을(를) 나열하지 않으며 파일, 소유자 또는 ACL 표시기를 검색하지 않으므로 이 변환을 감사로 설명해서는 안 됩니다.

작업 예: 디렉터리를 감사하지 않고 복사된 모드 문자열을 변환합니다.

전송 도구 및 파일 시스템 전반의 모드 손실은 저장소 증거 외부에 있습니다. 소스는 파일을 복사하거나, 아카이브를 열거나, 스토리지를 마운트하거나, 여러 위치에 걸쳐 메타데이터를 비교하지 않습니다. 계산기는 관찰된 644을 공유, 드라이브, 초기화 시스템 또는 아카이브 유틸리티에 귀속시킬 수 없습니다. 전송 기록 없이 해당 필드에 입력된 모드만 볼 수 있습니다.

복사된 항목에 예상치 못한 모드가 있는 경우 비난을 할당하지 않고 예상 값과 관찰 값을 비교합니다. 600 및 644 사이에서는 그룹 읽기 및 기타 읽기가 나타나는 동안 소유자 권한은 변경되지 않습니다. 변환기는 정확한 델타를 지원합니다. 전송, 보존 또는 재창조로 인해 발생했는지 여부를 결정하려면 목적지와 전송 경로에 대한 증거가 필요합니다.

전송 도구 및 파일 시스템 전반의 모드 손실은 저장소 증거 외부에 있습니다.

키 형식, 에이전트 상태 및 서버 로그는 이 계산기에 속하지 않습니다. 개인 키, ssh-agent 데이터 또는 로그가 아닌 8진수 및 기호 권한 텍스트를 구문 분석합니다. 유효한 600 변환은 암호화 자료, 로드된 ID, 네트워크 교환 또는 서버 응답에 대해 아무 것도 말하지 않습니다. 빈 그룹과 다른 클래스에서는 소유자만 읽고 쓸 수 있음을 증명합니다.

이 경계는 모든 SSH 실패를 chmod 작업으로 처리하는 것을 방지합니다. 관찰된 모드가 개인 사전 설정과 다른 경우 계산기는 정확한 비트를 표시합니다. 이미 일치하는 경우 경로는 더 이상 SSH 증거를 제공하지 않습니다. 액세스를 확대하기보다는 외부 진단을 계속하세요. 성공적인 변환은 인증이 아니며 미리보기에서는 아무것도 실행되지 않습니다.

요약: 개인은 600 및 700을 의미하며 계산기는 설정하려는 모드가 그룹이나 다른 사람에게 아무 것도 제공하지 않음을 확인합니다.

저장소 지원 요점은 600 및 700이 소유자에 대한 일반 권한을 예약한다는 것입니다. 해당 기호 형식인 rw------ 및 rwx------에는 그룹이나 기타 부여가 포함되어 있지 않습니다. 8진수, 기호 텍스트, 확인란 및 요약은 이러한 표현을 확인하는 반면 잘못된 위치는 거부됩니다. 이 중 어느 것도 SSH 승인, ​​소유권, 키 유효성 또는 인증을 증명하지 못합니다.

변환을 범용 SSH 정책으로 전환하지 마십시오. 경로는 StrictModes를 구현하지 않으며, 홈 디렉터리를 검사하고, 소유자를 식별하거나, 키 파일의 유효성을 검사하지 않습니다. 이를 사용하여 빈 그룹 및 기타 클래스를 확인한 다음 신뢰할 수 있는 SSH 증거와 실제 시스템에 의존합니다. 표시된 명령을 복사하면 책임이 셸과 파일 시스템으로 이전됩니다.