Windows SSH: Permissões para 'private-key' são demasiado abertas

I've OpenSSH 7.6 instalado no Windows 7 para fins de teste. SSH cliente & o servidor funciona muito bem até eu tentar acessar uma das minhas caixas AWS EC2 a partir desta janela.

Parece que preciso de alterar a permissão no ficheiro da chave privada. Isto pode ser feito facilmente no unix/linux com o comando chmod.

E as janelas?

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 ubuntu@192.168.0.1 -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
ubuntu@192.168.0.1: Permission denied (publickey).

C:\>
C:\>
C:\>ssh ubuntu@192.168.0.1 -i private-key.ppm
Warning: Identity file private-key.ppm not accessible: No such file or directory.
ubuntu@192.168.0.1: Permission denied (publickey).

C:\>

Você localiza o arquivo no Windows Explorer, clique com o botão direito do mouse sobre ele e selecione "Properties". Navegue até "Security" separador e clique em "Advanced".

Altere o proprietário para você, desabilite a herança e apague todas as permissões. Em seguida, conceda-se " controle total " e salve as permissões. Agora o SSH ganhou'não reclame mais das permissões de arquivos muito abertos.

Deve acabar por ficar assim:

Comentários (8)

As chaves só devem ser acessíveis ao usuário para o qual elas're se destinam e nenhuma outra conta, serviço, ou grupo.

  • GUI:
    • Propriedades - Segurança - Avançado****
      1. Set *Owner** para a chave's user
      2. Remover todos os usuários, grupos e serviços, exceto para a chave's usuário, em **Entradas de permissão***
      3. Definir chave's usuário para **Controle Completo***


  • CLI:**

     :: Set Variable :::
     set key="C:Caminho para a chave"
    
     :: Remover Herança :::
     cmd /c icacls %key% /c /t /inheritance:d
    
     :: Definir Propriedade para Proprietário :::
     cmd /c icacls %key% /c /t /grant %username%:F
    
     :: Remover Todos os Utilizadores, excepto o Proprietário ::
     cmd /c icacls %key% /c /t /remove Administrator "Authenticated Users" BUILTIN\Administradores BUILTIN Todos os Utilizadores do Sistema
    
     :: Verificar :::
     cmd /c icacls %key%
Comentários (8)

Eu tive o mesmo problema, e parece estar relacionado com a versão do SSH you're running.

Se eu digitar

where ssh

Eu fico...

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

Quando eu corro ssh -V em ambos os locais, recebo

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, funciona bem e não'não reclama das permissões, mas rodando a mesma linha de comando, utilizando a instalação anterior do SSH, ele volta com isto.

Load key "t:\\mykeys\\rich-private.ppk": invalid format
banana@127.0.0.127: Permission denied (publickey).

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

Comentários (4)