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 600
Windows 10에서는 무엇을 사용합니까?
답변1
키는 해당 사용자만 액세스할 수 있어야 하며 다른 계정, 서비스 또는 그룹은 액세스할 수 없어야 합니다.
- GUI:
[파일]속성→보안→고급의- 소유자:변경 →주 구성원 선택→ 키 사용자 입력 → 확인
- 권한 항목:키 사용자를 제외한 모든 항목을 제거합니다.
- 키의 사용자를 다음으로 설정완전한 통제하에있는아직 설정되지 않은 경우
- 사용자 선택 → 수정 → 모든 권한 → 확인
또는 - 추가 →주 구성원 선택→ 키 사용자 입력 → 확인
- 사용자 선택 → 수정 → 모든 권한 → 확인
- 알았어 → 알았어
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를 사용하면 다음과 같은 추가 세부 정보가 제공됩니다.
- pem 파일, 속성, 보안을 마우스 오른쪽 버튼으로 클릭하십시오.
- 소유자를 키의 사용자(즉, 본인)로 설정
- 권한 항목, 키 사용자를 제외한 모든 사용자, 그룹, 서비스 제거
- 키의 사용자를 "모든 권한"으로 설정합니다. 내가 한 방법은 다음과 같습니다.
- 상속 비활성화. 팝업이 표시되면 이 파일에 대한 명시적 권한으로 전환하도록 선택하세요.
- 추가, 주체 선택, 개체 유형은 사용자, 개체 이름은 키 소유자의 사용자 이름입니다. 예를 들어 홈 디렉터리가 c:\Users\ben 폴더인 경우 여기에 ben을 입력합니다. 좋아요.
- 해당 사용자에게 모든 권한을 부여하십시오
- 다른 모든 사람(인증된 사용자, 시스템 등) 삭제
- 좋아요
상속을 비활성화하기 전에 소유자를 키 사용자로 설정하는 것이 중요합니다.
답변3
시간을 절약하려면 다른 솔루션보다 훨씬 쉽습니다. 폴더와 같은 드라이브의 "안전한 위치"로 파일을 이동하기만 하면 됩니다 %userprofile%/.ssh
.
참고: 어떤 사람들은 C: 드라이브나 사용자의 다운로드 폴더 어디에서나 작동한다고 말했지만 저는 그것을 테스트하지 않았습니다.