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 [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:\>
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:
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.
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%
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
[email protected]: Permission denied (publickey).
ps. as permissões no arquivo são apenas acesso total para mim, e nada mais.