Autenticação de chave privada SSH no Windows 10 Bash

0

Eu tenho algum Linux instalado pelo Laptop e uso o SSH com autenticação de chave privada para conectar a um servidor. Recentemente, instalei o Win10 com a extensão de desenvolvedor bash no desktop. Desde que eu só tenho uma conta de usuário neste servidor e, portanto, apenas na chave, eu simplesmente movido por arquivo de chave privada para o respectivo diretório do meu bash do Windows.

No entanto, sempre que eu abro uma nova instância do bash e tento conectar-me ao servidor, aparece a mensagem de erro: 'Permission denied (publickey)'. é retornado. Minha correção atual é a seguinte: exec ssh-agent bash; ssh-add;

Embora eu pudesse adicionar isso ao .profile, seria necessário inserir a senha toda vez que eu abrir o bash.

Alguém tem algumas sugestões de como consertar isso de forma mais adequada, s.t. Eu só tenho que digitar minha senha toda vez que eu me conecto ao servidor e que eu não tenho que reinicializar minha chave ssh em cada sessão bash.

cumprimentos

    
por hansal 10.01.2018 / 11:51

1 resposta

0

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

  • Eu não uso o WSL, pois é um pesadelo de segurança, criando mais problemas do que solucionados, por isso fornecerei as duas maneiras de definir as permissões corretas

Windows Powershell Terminal

  • 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%
    

Terminal de Bash da WSL

  • CLI

    # Set Variables
    
      # Key  
        key="/path/to/key"
    
      # User:
        user="$(echo $USER)"
    
    # Set Ownership
      # This assumes user's name is also user's group name
        chown $user:$user $key
    
    # Set Access Rights
      chmod 0600 $key
    
    # Verify
    ls -l $key
    
por 11.04.2018 / 17:54