Erro de “proprietário ou permissões incorretas” usando o ssh.exe do Cygwin

29

Estou tentando usar o ssh.exe no Cygwin (no Windows 7). Eu copiei um arquivo config para c:\cygwin\home\[USERNAME]\.ssh . Quando executo ssh (por exemplo, ssh -vT [email protected] ), recebo o seguinte erro:

OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011 Bad owner or permissions on /home/[USERNAME]/.ssh/config

Como obtenho o ssh para ler meu arquivo de configuração?

    
por Ben Scott 20.10.2011 / 13:02

7 respostas

9

Verifique as permissões do arquivo config usando o comando ls do Cygwin:

> c:\cygwin\bin\ls.exe -la c:\cygwin\home\[USERNAME]\.ssh

Provavelmente será algo assim:

total 5
drwxrwxrwt+ 1 Administrators None  0 Oct 20 17:02 .
drwxr-xr-x+ 1 [USERNAME]     None  0 Oct 19 08:15 ..
-rw-------  1 Administrators None 57 Oct 20 16:58 config

O arquivo de configuração precisa pertencer a [USERNAME]. Tente isto:

> c:\cygwin\bin\chown.exe [USERNAME] c:\cygwin\home\[USERNAME]\.ssh\config

ls -la agora deve mostrar o proprietário correto. Se isso ainda não funcionar, tente redefinir o modo (permissões):

> c:\cygwin\bin\chmod.exe 700 c:\cygwin\home\[USERNAME]\.ssh\config
    
por 20.10.2011 / 13:10
45

Depois de fazer como acima, eu sempre tenho isso:

total 22
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 .
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 ..
-rw-rw----  1 jl None  129 Jul  1 14:30 config

e o erro em .ssh/config . Portanto, executei chown na pasta .ssh e chmod novamente assim:

> chown -R [USERNAME]:users .ssh/

e depois:

> chmod -R 600 .ssh/

e finalmente consegui trabalhar:

total 29
drwxrwxr-x+ 1 jl None     0 Sep  9 18:44 .
drwxrwxrwt+ 1 jl None     0 Sep  9 18:44 ..
drw-------+ 1 jl Users    0 Sep  9 18:44 .ssh

Editar (para o bash no Windows10)

Quando você receber o erro ...

Failed to add the host to the list of known hosts (/PATH_TO_HOME/USERNAME/.ssh/known_hosts).

Certifique-se de que o known_hosts seja gravável

$ chmod 755 known_hosts

Nota: acredito que você só precisa definir 600 para sua chave privada

Então, tente ssh.

Quando você chegar ...

Permanently added 'HOST_IP' (RSA) to the list of known hosts.

Você pode substituir o modo 600

$ chmod 600 known_hosts

P.S. : acho que isso é um bug no Windows 8.

    
por 10.09.2013 / 16:03
19

Esta resposta é copiada textualmente do link . Esta é a única resposta que funcionou para mim depois de uma atualização recente do cygwin.

Não se esqueça das ACLs

Nada funcionou para mim até que tirei o arquivo de ACLs e redefini as permissões .

#remove ACLs
setfacl -b ~/.ssh/config

#reset permissions
chmod 0600 ~/.ssh/config

Você pode usar getfacl para ver a ACL atual em um arquivo.

getfacl ~/.ssh/config

Antes de remover as ACLs (quebradas):

# owner: Administrators
# group: None
user::rw-
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
mask:rwx
other:---

Depois: (trabalhando)

# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---
    
por 18.02.2015 / 17:40
9

Para unix & OSX

Simplesmente:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

Para Windows

Se o arquivo for um link simbólico do Windows (NTFS), o acima não funcionará. Você precisa torná-lo um arquivo regular. Não sei porquê.

Se você não tiver o openssh ou cygwin, use o chocolate para instalá-lo facilmente.

choco install cyg-get

Abra o Cygwin Terminal que foi instalado com chocolatey e execute (note que ssh-keygen cria novas chaves):

cyg-get install openssh
ssh-keygen
cd ~/.ssh && explorer.exe .

Verifique se as chaves estão lá (ou substitua-as pelas chaves desejadas) e, em seguida, no shell do Cygwin:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

Ou, no caso raro em que você está usando (e gerou as chaves), o pacote chocolatey's SSH :

chown -R $USER:users  /cygdrive/c/Users/$USER/.ssh
chmod -R 600 /cygdrive/c/Users/$USER/.ssh
    
por 25.09.2014 / 15:19
3

Nota importante se o seu Windows não estiver em inglês dos EUA: o nome do grupo "usuários" depende do idioma. Por exemplo, se o seu Windows estiver em espanhol, você terá que alterar a propriedade dos arquivos com chown $USER:Usuarios *

    
por 11.01.2015 / 05:33
1

Nenhum destes (chmod / chown / icacls / setacl / copyacls / explorer > segurança) funcionou no meu cygwin64 / win7 / admin, finalmente isso funciona com cygwin64/ssh -F ~/.ssh/config outras soluções são usar ssh mais antigo no cygwin32 ou ssh no git para janelas ..

    
por 28.03.2017 / 09:17
0

Para quem usa noacl no caminho com ~/.ssh dir, a solução simples é criar um link simbólico NTFS nativo:

cmd# mklink c:\home\.ssh c:\opt\cygwin\home\misc\.ssh
symbolic link created for c:\home\.ssh <<===>> c:\opt\cygwin\home\misc\.ssh

Com noacl , não há como definir outras permissões, em seguida, rwxr-xr-x ou rw-r--r-- . Como / hierarquia deve estar sem noacl (ou deve estar com acl ) você pode criar diretório aqui e apontar para locais problemáticos para os aplicativos da Cygwin.

    
por 14.08.2017 / 02:22