Windows SSH: Permissões para 'chave privada' são muito abertas

24

Eu tenho o OpenSSH 7.6 instalado no Windows 7 para fins de teste. Cliente SSH & trabalho do servidor muito bem até que eu tentei acessar uma das minha caixa AWS EC2 a partir desta janela.

Parece que preciso alterar a permissão no arquivo de chave privada. Isso pode ser feito facilmente em unix / linux com o comando chmod .

E o Windows?

private-key.ppm é copiado diretamente da AWS e eu acho que a permissão também.

C:\>ssh -V
OpenSSH_7.6p1, LibreSSL 2.5.3

C:\>ver

Microsoft Windows [Version 6.1.7601]

C:\>


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

C:\>
C:\>
C:\>ssh [email protected] -i private-key.ppm
Warning: Identity file private-key.ppm not accessible: No such file or directory.
[email protected]: Permission denied (publickey).

C:\>
    
por Sabrina 18.02.2018 / 06:10

4 respostas

37

Você localiza o arquivo no Windows Explorer, clica nele com o botão direito do mouse e seleciona "Propriedades". Navegue até a aba "Segurança" e clique em "Avançado".

Altere o proprietário para você, desative a herança e exclua todas as permissões. Em seguida, conceda a si mesmo "Controle total" e salve as permissões. Agora o SSH não vai mais reclamar sobre a permissão de arquivos abertos.

Isso deve ficar assim:

    
por 18.02.2018 / 09:57
6

As chaves só podem ser acessadas pelo usuário a que se destinam e nenhuma outra conta, serviço ou grupo.

  • GUI:
    • [File] Propriedades - Segurança - Avançado
      1. Defina Proprietário como o usuário da chave
      2. Remova todos os usuários, grupos e serviços, exceto o usuário da chave , em Entradas de permissão
      3. Defina o usuário da chave como Controle total


  • CLI:

    :: Set Variable ::
    set key="C:\Path\to\key"
    
    :: Remove Inheritance ::
    cmd /c icacls %key% /c /t /inheritance:d
    
    :: Set Ownership to Owner ::
    cmd /c icacls %key% /c /t /grant %username%:F
    
    :: Remove All Users, except for Owner ::
    cmd /c icacls %key%  /c /t /remove Administrator BUILTIN\Administrators BUILTIN Everyone System Users
    
    :: Verify ::
    cmd /c icacls %key%
    
por 08.06.2018 / 17:34
3

Eu tive o mesmo problema e parece estar relacionado à versão do SSH que você está executando.

Se eu digitar

where ssh

Eu recebo ...

C:\Windows\System32\OpenSSH\ssh.exe
C:\Program Files\Git\usr\bin\ssh.exe

Quando executo ssh -V em ambos os locais, obtenho

OpenSSH_7.5p1, without OpenSSL
OpenSSH_7.3p1, OpenSSL 1.0.2k  26 Jan 2017

... respectivamente

Então, quando eu executo ssh do diretório git / bin, ele funciona bem e não reclama das permissões, mas rodando a mesma linha de comando, usando a antiga instalação do SSH, ele volta com isso.

Load key "t:\mykeys\rich-private.ppk": invalid format
[email protected]: Permission denied (publickey).

ps. as permissões no arquivo são apenas acesso total para mim e nada mais.

    
por 05.04.2018 / 13:53
1

Além da resposta fornecida pelo ibug. Desde que eu estava usando o sistema Ubuntu dentro do Windows para executar o comando ssh. Ainda não estava funcionando. Então eu fiz

sudo ssh ...

e depois funcionou

    
por 08.09.2018 / 15:27