Proprietário incorreto ou permissões no arquivo de configuração ssh

Proprietário incorreto ou permissões no arquivo de configuração ssh

Percebi que não consigo mais me conectar ao servidor web em x.x.202.50. Ontem alterei o seguinte arquivo de configuração ssh: /share/homes/admin/.ssh/configadicionando as seguintes configurações:

# ssh (secure shell) configuration file
Host webserver
    HostName x.x.212.50
    User user1
    IdentityFile ~/.ssh/id_rsa `

A razão pela qual fiz isso é para ativar o login de chave para fins de sincronização (com Unison).

Agora, quando tento me conectar ao servidor, recebo o seguinte erro:

Proprietário ou permissões incorretos em /share/homes/admin/.ssh/config

Eu faço a conexão Puttydo Windows 10 e do servidor Linux para outro servidor Linux.

Preciso me conectar ao servidor porque estou envolvido em um projeto e não sei como fazê-lo. Alguém sabe como fazer isto?

Responder1

Você precisa alterar as permissões do diretório .ssh. Execute o seguinte (descobri que 600 não resolverá isso sozinho):

chmod 700 ~/.ssh
chmod 600 ~/.ssh/*

Responder2

A regra geral para os arquivos que podem afetar a segurança (chaves privadas, arquivos de configuração, chaves autorizadas) é que eles não devem ser graváveis ​​por ninguém além do proprietário (as chaves privadas não devem estar acessíveis!).

O erro vem docódigo openshabaixo:

if (((sb.st_uid != 0 && sb.st_uid != getuid()) ||
    (sb.st_mode & 022) != 0))
      fatal("Bad owner or permissions on %s", filename);

Portanto, traduzi-lo para o inglês significa que o arquivo de configuração deve pertencer ao root ou ao usuário que está executando o sshe não pode ser gravado por nenhum grupo ou outros usuários.

Como já foi apontado nos comentários, você provavelmente concedeu essas permissões a alguém de alguma forma, portanto, remover essas permissões deve resolver o problema:

chmod go-w /share/homes/admin/.ssh/config

Responder3

Eu tenho uma máquina Linux de usuário único que compartilha o mesmo diretório '.ssh' com a conta root. O /root/.ssh é um link simbólico que aponta para a pasta '/home/username/.ssh' do usuário.

Recentemente adicionei um arquivo ~/.ssh/config e isso fez com que o SSH me fornecesse a mensagem de erro ao invocar SSH e SSHFS da conta root. A solução para mim foi fazer o seguinte:

chown root:$USER ~/.ssh/config
chmod 644 ~/.ssh/config

No entanto, isso é um pouco problemático quando tenho que editar o arquivo, pois exige que eu altere as permissões e a propriedade do arquivo e, em seguida, reverta-as. Mas esse é um problema meu porque optei por compartilhar a pasta entre as contas. Criei alguns scripts de shell para inverter as permissões somente ao invocar o comando 'sshfs' ou 'ssh' usando a conta de usuário root.

Responder4

As outras respostas só resolvem o problema se houver permissão errada. No entanto, no meu caso, o problema era o proprietário do arquivo errado. Você pode executar ls -l ~/.sshpara visualizar as informações sobre permissões e proprietários. O proprietário do arquivo pode ser visto na 3ª coluna. Se estiver errado, execute:

chown <newOwner> <fileName>

informação relacionada