Autologin SSH funciona esporadicamente

1

Estou instalando 20 servidores.

Em cada um, com um usuário específico, criei uma chave dsa.

Eu fiz cat key.pub de cada servidor em ~/.ssh/authorized_keys do primeiro servidor

Eu verifiquei que todos os servidores podem fazer login sem senha no primeiro servidor.

Usando o fantoche, copiei o .ssh/authorized_key do primeiro servidor para todos os outros servidores.

As permissões são as mesmas, 600

Não consigo fazer login automaticamente. ainda funciona dos servidores para o primeiro - mas não para nenhum outro. Eu faço login como o usuário, ssh para os outros servidores - e ele me pede senha.

Eu reiniciei o serviço sshd, mas não adiantou. / etc / ssh / sshd_config é o mesmo no primeiro servidor e todos os outros.

Este é o RHEL6.

Alguma ideia? Eu fiz algo errado?

Este é o arquivo fantoche; funciona agora - eu tinha a raiz como 775

file {"/home/user":
    owner   => user,
    group   => user,
    ensure  => directory,
    mode    => 755,
}

file {"/home/user/.ssh":
    owner   => user,
    group   => user,
    ensure  => directory,
    mode    => 700,
}

file {"/home/user/.ssh/authorized_keys":
    owner   => user,
    group   => user,
    ensure  => file,
    mode    => 600,
    source => "puppet://puppet/files/user_sshkeys.txt";
}
    
por mik 21.07.2012 / 00:34

3 respostas

2

As permissões do diretório ~/.ssh devem ser 700 . As permissões do arquivo ~/.ssh/authorized_keys devem ser 600 . Você provavelmente deseja limitar a permissão de gravação no diretório pessoal do usuário para o usuário.

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Em vez de usar cat , tente o comando ssh-copy-id , pois ele cuida dessas permissões.

Você pode nos mostrar como são suas diretivas de arquivo do Puppet? Isso provavelmente pode ser corrigido lá.

    
por 21.07.2012 / 17:49
0

O que você está tentando configurar é chamado de "Autenticação Baseada em Host". Faça uma pesquisa na web para isso e você encontrará o que precisa. É um tópico SSH avançado, que é fácil de fazer, depois de ter feito isso.

    
por 21.07.2012 / 01:01
0

O Puppet (quando eu escrevo isto, versão 3.1.1) tem um tipo chamado ssh_authorized_key . Usando isso, você pode simplesmente empurrar a sua chave para a (s) sua (s) máquina (s) e ele irá cuidar das permissões e tal para você.

Aqui está o que eu tenho na minha configuração:

ssh_authorized_key { 'root pub key':
    ensure  => present,
    key     => "yourkeyhere",
    name    => "name@server",
    user    => "user",
    type    => "ssh-rsa",

Você pode ver a documentação relevante aqui .

Caso contrário, há módulos que foram escritos por outros que fazem a mesma coisa, mas oferecem algumas opções adicionais, pois existem algumas limitações com o que o tipo ssh_authorized_key faz.

    
por 11.04.2013 / 01:17