Diretório inicial criptografado não montado automaticamente

10

De alguma forma, consegui interromper a montagem automática do meu diretório pessoal criptografado.

Toda vez que faço login via SSH, vejo o seguinte:

valorin@joshua:~$ ls -la
total 44
dr-x------ 3 valorin valorin  4096 2012-03-17 17:10 .
drwxr-xr-x 7 root    root     4096 2012-03-17 11:45 ..
lrwxrwxrwx 1 valorin valorin    56 2012-03-08 20:37 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop
-rw------- 1 valorin valorin   917 2012-03-17 19:24 .bash_history
drwx------ 3 valorin valorin  4096 2012-03-16 17:58 .cache
lrwxrwxrwx 1 valorin valorin    33 2012-03-08 20:37 .ecryptfs -> /home/.ecryptfs/valorin/.ecryptfs
-rw-r--r-- 1 root    root    21954 2012-03-08 20:35 .face
lrwxrwxrwx 1 valorin valorin    32 2012-03-08 20:37 .Private -> /home/.ecryptfs/valorin/.Private
lrwxrwxrwx 1 valorin valorin    52 2012-03-08 20:37 README.txt -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.txt
-rw------- 1 root    root      703 2012-03-17 17:10 .viminfo

Alguma idéia do que eu fiz e como posso corrigi-lo?

ATUALIZAR:

Eu configurei a autenticação de chave SSH usando o método aqui , que, em retrospectiva, é o motivo do diretório inicial criptografado que não funciona.

Portanto, minha nova pergunta, como faço para solicitar a senha automaticamente depois de fazer login com a chave de autenticação SSH?

Stephen RC
fonte
Você é solicitado a fornecer sua senha de login ao fazer login? Existem mensagens eCryptfs no syslog?
Dustin Kirkland
@DustinKirkland, veja minha atualização na pergunta. Percebi que é porque eu configurei a autenticação de chave SSH ... então não há nenhuma senha sendo solicitada.
Stephen RC
aha, bem, então é isso ;-) Vou postar uma resposta melhor abaixo, agora.
Dustin Kirkland

Respostas:

28

Ok, por isso, enquanto é possível utilizar a autenticação SSH chave pública para autenticar no sistema sem digitar uma senha (mesmo que seu diretório home é criptografada), é não possível montar automaticamente seu diretório home criptografado.

Para resolver isso, você precisará adicionar uma linha ao final do seu $ HOME / .profile desmontado :

ecryptfs-mount-private

Isso garantirá que, após o login usando a autenticação de chave pública SSH, você será solicitado a fornecer sua senha e montará seus dados criptografados. Se já estiver montado, esse comando deverá ser bem-sucedido silenciosamente.

Apreciar!

Divulgação completa: Sou um dos autores e mantenedores do eCryptfs.

Dustin Kirkland
fonte
1
Incrível, obrigado, isso faz exatamente o que eu quero :) Eu também tive que adicionar cd /home/$HOMEo arquivo .profile, para atualizá-lo depois de decifrá-lo.
Stephen RC
1
Apenas para mencionar que se você estiver usando, zshele precisa ser em ~/.zprofilevez de~/.profile
Timmy O'Mahony
Talvez isso ajude outras pessoas: tive um problema em que ecryptfs-mount-privateparecia não fazer nada; nem sequer solicite uma senha. Acontece que ele funcionou e não precisava de uma senha porque eu já a havia inserido enquanto usava sudopara outra coisa, mas precisava alterar o diretório de trabalho atual de /home/arthurvolta e voltar antes de ver meus arquivos.
Arthur Tacca
Obrigado @ TimmyO'Mahony! Eu não iria por escolha têm vindo a utilizar zsh, mas foi uma marca nova instalação, e eu lembro de ter visto que ele não poderia salvar meu histórico .zsh ...
Auspex
2

Tente o seguinte:

  1. Verifique se /etc/pam.d/common-sessioncontém esta linha:

     # Encrypt home
     session    optional    pam_ecryptfs.so unwrap
    
  2. Verifique se /etc/pam.d/common-authcontém esta linha:

     auth   optional    pam_ecryptfs.so unwrap
    
  3. Certifique-se de que /etc/pam.d/sshdcontém estas linhas:

     # Standard Un*x authorization.
     @include common-account
    
     # Standard Un*x session setup and teardown.
     @include common-session
    
  4. Se você alterou a senha do usuário recentemente, verifique /etc/pam.d/common-password

    Se não contiver esta linha:

     password   optional    pam_ecryptfs.so
    

    Então você precisa da sua senha antiga para reconfigurar ecryptfs.

    Minha sugestão é alterar sua conta para a senha anterior usando passwde, em seguida, adicionando a linha acima /etc/pam.d/common-passworde alterando a senha novamente para a nova senha.

    Como alternativa, você pode tentar o seguinte:

    ecryptfs-setup-private

    Certifique-se de inserir a mesma senha que a senha dos usuários quando solicitado.

  5. Se nenhuma das opções acima funcionar, tente executar, ecryptfs-setup-privatetalvez isso conserte alguma coisa.

  6. Se ainda não está funcionando, estou sem ideias, desculpe.

d_inevitable
fonte
Toda essa configuração parece boa. Verifique as atualizações da minha pergunta, acho que é devido à autenticação de chave SSH que configurei.
Stephen RC
Tente mudar optionalpara requireddentro common-account. A idéia é que o pam realmente solicite a senha, caso não a obtenha. Certifique-se de manter uma sessão aberta para não se arriscar a se trancar.
d_inevitable 24/03/12
o que você quer dizer com "conta comum"?
precisa
2

Ao seguir estas instruções mencionadas em sua postagem, você a criou especificamente para poder fazer o SSH em sua conta sem que sua pasta pessoal seja montada. Se você desfazer o que fez lá e voltar ao que era antes, quando fizer o SSH, você será forçado a digitar sua senha se o diretório inicial ainda não estiver descriptografado. (Se o seu diretório pessoal já estiver descriptografado por causa de outra sessão, sua chave SSH funcionará perfeitamente para uma conexão sem senha!)

Caso contrário, a alternativa é executar ecryptfs-mount-privatedepois que você fizer login com sua chave para descriptografar manualmente sua pasta pessoal.

Macil
fonte
Existe uma maneira de ecryptfs-mount-privateexecutar automaticamente quando eu faço login?
Stephen RC
Apenas atualizei o link quebrado "estas instruções", pois eu tinha que localizá-lo na máquina Wayback: stephen.rees-carter.net/thought/… Pensamentos adicionais sobre o artigo mencionado: em vez de armazenar okey_keys como /home/.ssh/ % u, armazene chaves_computadas em /home/.ssh/%u/authorized_keys onde /home/.ssh/%u/ pertence a% u:% u com 700 permissões, e o arquivo pertence a% u com 600 permissões.
Jeremy Lyons
O @StephenRC cria um ~ / .profile que executa ecryptfs-mount-private no seu diretório inicial não criptografado.
Jeremy Lyons