Um contêiner do Linux pode usar um arquivo authorized_keys fora do meu diretório inicial, mas os contêineres efêmeros baseados nele não podem. Por quê?

10

No Ubuntu 12.10, criei um LXC do tipo 'ubuntu' usando o utilitário lxc-create. Em seguida, criamos contêineres efêmeros baseados nesse contêiner usando o utilitário lxc-start-efêmero e preciso me conectar àqueles que usam o ssh sem senha. No entanto, eu preciso manter as pastas / home / ubuntu intactas, por isso não posso colocar o arquivo usual .ssh / authorized_keys lá.

A seção 'diretório pessoal criptografado' aqui me diz como mover authorized_keys para fora do diretório home . Depois de seguir essas instruções de dentro do contêiner base, posso ssh no contêiner base sem dar uma senha.

No entanto, quando eu inicio um contêiner efêmero do contêiner de base, não consigo usar o ssh sem uma senha. (Confusamente, o ssh sem senha para o contêiner efêmero funciona quando o authorized_keys está em seu lugar habitual em /home/ubuntu/.ssh.) Como posso consertar isso?

Veja o que o ssh -v disse, a partir de quando aceita a chave do host:

debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/ubuntu/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/ubuntu/.ssh/id_dsa
debug1: Trying private key: /home/ubuntu/.ssh/id_ecdsa
debug1: Next authentication method: password

Aqui estão as partes relevantes do /var/log/auth.log no contêiner efêmero:

Apr 11 00:06:52 test-temp-SNeWevO sshd[306]: Authentication refused: bad ownership or modes for directory /
Apr 11 00:06:54 test-temp-SNeWevO sshd[306]: Accepted password for ubuntu from 10.0.3.1 port 59677 ssh2
Apr 11 00:06:54 test-temp-SNeWevO sshd[306]: pam_env(sshd:setcred): Unable to open env file: /etc/default/locale: No such file or directory
Apr 11 00:06:54 test-temp-SNeWevO sshd[306]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)

Eu fiz este teste em uma nova micro instância da AWS baseada no padrão Ubuntu 12.10 AMI, e posso fornecer instruções detalhadas sobre como reproduzi-lo, se isso ajudar.

    
por Anand 11.04.2013 / 02:21

1 resposta

1

Essa é uma pergunta antiga, mas ainda aparece no google ...

Authentication refused: bad ownership or modes for directory /

é causado pelo serviço sshd ter requisitos rígidos de permissões para o diretório no qual o authorized_keys é encontrado, não tendo certeza de como você conseguiu fazer com que o diretório raiz (/) presumivelmente tenha algo a ver com a configuração dos contêineres.

Se você não pode alterar as permissões de /, o que parece provável neste caso, você pode definir

StrictModes no

em sshd_config.
Desde que você não tenha vários usuários acessando o servidor, isso tem pouco impacto na segurança.

    
por teknopaul 06.06.2017 / 00:00