Não é possível fazer o login da chave pública SSH em uma casa criptografada

6

Não consigo fazer login de chave pública ssh no meu servidor e acho que esse problema está relacionado ao fato de minha casa estar criptografada. Eu escolhi a opção "criptografar minha pasta pessoal" na configuração de instalação do Ubuntu. As permissões em /home/MY-USER são 700.

Eu tentei outra estação de trabalho e tudo funciona bem. Eu ficaria feliz se alguém me ajudar a conseguir isso sem remover a criptografia.

    
por lucasvscn 04.09.2012 / 14:55

2 respostas

7

No arquivo ssh_config, você pode alterar a localização de onde procura sua chave privada. Você provavelmente poderia fazer algo como criar uma nova pasta em /etc/ssh/keys/ e colocar seu arquivo de chave privada id_rsa lá e, em seguida, alterar a opção IdentityFile em ssh_config para procurar no novo local. Ao fazê-lo, você deverá tomar algumas medidas para proteger sua chave privada.

Isto supõe que você é o único usuário do computador. Caso contrário, você pode criar pastas como /etc/ssh/keys/john/ e /etc/ssh/keys/dogbert/ e, em seguida, na opção IdentityFile colocar /etc/ssh/keys/%u/id_rsa

    
por 04.09.2012 / 16:09
8

Se o seu diretório home estiver criptografado, o daemon ssh não poderá acessá-lo para verificar se sua chave privada corresponde à sua pública. Sua pasta .ssh é criptografada depois de tudo.

Uma solução para isso pode ser ter sua pasta .ssh com suas authorized_keys em texto sem formatação em seu diretório inicial não criptografado. Mas se a sua técnica de criptografia usa sua senha como chave para descriptografar tudo, você ainda terá que digitá-la para obter tudo descriptografado.

Portanto, um login verdadeiro sem senha não funcionará aqui. (a menos que você queira armazenar sua senha em algum lugar em texto puro para ser automaticamente alimentado ao processo de descriptografia, mas isso é ainda mais inseguro do que criptografia).

Qual técnica você está usando para criptografar seu diretório pessoal?

Atualização: O Ubuntu usa o ecryptfs para montar uma partição criptografada no tempo de login (assim, quando você fornece sua senha) Para fazer o ssh encontrar sua pasta .ssh novamente, você pode fazer isso:

# copy your .ssh folder 
mkdir /tmp/mine
chmod 700 /tmp/mine
cp -r .ssh /tmp/mine  # if you are on a shared system you could even protect this dir a buit more
cd /tmp/mine
# unmount your encrypted home drive
/sbin/umount.ecryptfs_private
# copy your ssh folder to the place ssh will actually look for
cp -r .ssh ~
# be sure to remove it again from /tmp
rm /tmp/mine/.ssh -rf

Agora você deve conseguir fazer o login novamente, mas não terá sua pasta pessoal descriptografada automaticamente. Para montá-lo sem criptografia, você terá que inserir isso em cada login:

/sbin/mount.ecryptfs_private

O qual solicitará sua senha de login novamente.

Mais informações sobre isso podem ser encontradas aqui: link

    
por 04.09.2012 / 15:26