Windows 10에서 SSH 개인 키를 보호하는 방법

Windows 10에서 SSH 개인 키를 보호하는 방법

Windows 10용 새 SSH 클라이언트를 사용하고 있는데 개인 키로 연결하려고 하면 다음 오류가 발생합니다.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'MyPair.pem' are too open. It is required that your
private key files are NOT accessible by others. This private key will
be ignored. Load key "MyPair.pem": bad permissions [email protected]:
Permission denied (publickey).

Linux를 사용하는 경우 파일 권한을 설정하기 위해 실행해야 한다는 것을 알고 있지만 chmod 600Windows 10에서는 무엇을 사용합니까?

답변1

키는 해당 사용자만 액세스할 수 있어야 하며 다른 계정, 서비스 또는 그룹은 액세스할 수 없어야 합니다.

  • GUI:
    [파일]속성보안고급의
    1. 소유자:변경 →주 구성원 선택→ 키 사용자 입력 → 확인
    2. 권한 항목:키 사용자를 제외한 모든 항목을 제거합니다.
    3. 키의 사용자를 다음으로 설정완전한 통제하에있는아직 설정되지 않은 경우
      1. 사용자 선택 → 수정 → 모든 권한 → 확인
        또는
      2. 추가 →주 구성원 선택→ 키 사용자 입력 → 확인
    4. 알았어 → 알았어

  • Cmd:
    ::# Set Key File Variable:
        Set Key="%UserProfile%\.ssh\id_rsa"
    
    ::# Remove Inheritance:
        Icacls %Key% /c /t /Inheritance:d
    
    ::# Set Ownership to Owner:
        Icacls %Key% /c /t /Grant %UserName%:F
    
    ::# Remove All Users, except for Owner:
        Icacls %Key%  /c /t /Remove Administrator BUILTIN\Administrators BUILTIN Everyone System Users
    
    ::# Verify:
        Icacls %Key%
    
    ::# Remove Variable:
        set "Key="
    
    

  • PowerShell:
    # Set Key File Variable:
      New-Variable -Name Key -Value "$env:UserProfile\.ssh\id_rsa"
    
    # Remove Inheritance:
      Icacls $Key /c /t /Inheritance:d
    
    # Set Ownership to Owner:
      Icacls $Key /c /t /Grant $env:UserName:F
    
    # Remove All Users, except for Owner:
      Icacls $Key  /c /t /Remove Administrator BUILTIN\Administrators BUILTIN Everyone System Users
    
    # Verify:
      Icacls $Key
    
    # Remove Variable:
      Remove-Variable -Name Key
    
    

  • WSL/시그윈:
    # Set Variables:
      # Key File:
        key="/path/to/key"
    
      # User:
        user="$(echo $USER)"
    
    # Set Ownership to Owner: (assumes user's name is also user's group name)
      chown $user:$user $key
    
    # Set Access Rights
      chmod 0600 $key
    
    # Verify
      ls -l $key
    
    

답변2

Windows 10 GUI를 사용하면 다음과 같은 추가 세부 정보가 제공됩니다.

  1. pem 파일, 속성, 보안을 마우스 오른쪽 버튼으로 클릭하십시오.
  2. 소유자를 키의 사용자(즉, 본인)로 설정
  3. 권한 항목, 키 사용자를 제외한 모든 사용자, 그룹, 서비스 제거
  4. 키의 사용자를 "모든 권한"으로 설정합니다. 내가 한 방법은 다음과 같습니다.
  5. 상속 비활성화. 팝업이 표시되면 이 파일에 대한 명시적 권한으로 전환하도록 선택하세요.
  6. 추가, 주체 선택, 개체 유형은 사용자, 개체 이름은 키 소유자의 사용자 이름입니다. 예를 들어 홈 디렉터리가 c:\Users\ben 폴더인 경우 여기에 ben을 입력합니다. 좋아요.
  7. 해당 사용자에게 모든 권한을 부여하십시오
  8. 다른 모든 사람(인증된 사용자, 시스템 등) 삭제
  9. 좋아요

상속을 비활성화하기 전에 소유자를 키 사용자로 설정하는 것이 중요합니다.

답변3

시간을 절약하려면 다른 솔루션보다 훨씬 쉽습니다. 폴더와 같은 드라이브의 "안전한 위치"로 파일을 이동하기만 하면 됩니다 %userprofile%/.ssh.

참고: 어떤 사람들은 C: 드라이브나 사용자의 다운로드 폴더 어디에서나 작동한다고 말했지만 저는 그것을 테스트하지 않았습니다.

관련 정보