Estou usando o novo cliente ssh para windows 10 e ao tentar conectar com uma chave privada estou recebendo este erro:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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).
Eu sei que se eu estivesse no Linux precisaria executar chmod 600
para definir as permissões dos arquivos, mas o que você usa no Windows 10?
Responder1
As chaves só devem ser acessíveis ao usuário ao qual se destinam e nenhuma outra conta, serviço ou grupo.
- GUI:
[Arquivo]Propriedades→Segurança→Avançado- Proprietário:Mudar →Selecione um diretor→ Digite o usuário da chave → OK
- Entradas de permissão:Remova todos, exceto o usuário da chave
- Defina o usuário da chave comoControlo totalse ainda não estiver definido
- Selecione usuário → Modificar → Controle total → OK
OU - Adicionar →Selecione um diretor→ Digite o usuário da chave → OK
- Selecione usuário → Modificar → Controle total → OK
- OK → OK
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/Cygwin:
# 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
Responder2
Usando a GUI do Windows 10, aqui estão alguns detalhes adicionais:
- clique com o botão direito no arquivo pem, propriedades, segurança.
- definir proprietário como o usuário da chave (ou seja, você)
- entradas de permissão, remova todos os usuários, grupos, serviços, exceto o usuário da chave
- defina o usuário da chave para "controle total". Veja como eu fiz isso:
- desabilitar herança. se você vir um pop-up, opte por converter para permissões explícitas neste arquivo.
- Adicione, selecione um principal, o tipo de objeto é Usuário, o nome do objeto é o nome de usuário do proprietário da chave (por exemplo, se seu diretório inicial for a pasta c:\Users\ben, digite ben aqui). OK.
- Dê a esse usuário controle total
- excluir todos os outros (usuários autenticados, sistema, etc.)
- OK
É importante definir o proprietário como o usuário da chave antes de desabilitar a herança.
Responder3
Para ganhar tempo, muito mais fácil que as outras soluções: basta mover o arquivo para um “local seguro” do seu disco, como a %userprofile%/.ssh
pasta.
NOTA: Algumas pessoas disseram que funciona em qualquer lugar na unidade C: ou na pasta de downloads do usuário, mas não testei isso.