Diretório inicial criptografado e SSH (autenticação somente chave) interrompem o encaminhamento X11

Diretório inicial criptografado e SSH (autenticação somente chave) interrompem o encaminhamento X11

Ao instalar o Ubuntu 16.04, decidi optar por criptografar meu diretório pessoal. Eu também uso autorização somente com chave ssh, pois os logins com senha estão desabilitados por segurança.

Consegui resolver o problema "não consigo fazer login porque .ssh/authorized_keys" usando isto:https://stephen.rees-carter.net/thought/encrypted-home-directories-ssh-key-authentication. Resumindo:

sudo vim ~/.profile

e depois entrando

ecryptfs-mount-private
cd /home/username

Mas agora, o encaminhamento do X11 por ssh está quebrado. Parece que o arquivo .Xauthority MMC (MIT Magic Cookie) não está entrando no diretório inicial não criptografado.

Responder1

Meu pensamento inicial é modificar ~/.profile para ler:

cp "$HOME/.Xauthority" /temp/$USERNAME/
ecryptfs-mount-private 
mv /temp/$USERNAME/.Xauthority "$HOME"

Onde /temp/$USERNAME é um diretório que pertence a $USERNAME e tem 700 permissões. Não tenho certeza de quão segura é essa opção.

Responder2

Eu tenho usado isso como meu /usr/local/bin/ecryptfs-mount-private:

#!/bin/sh
# eCryptfs helper script that transfers X11 Authority properly after mounting
# Copyright 2016+ by Adam Katz <https://github.com/adamhotep>, GPLv2+

# If you're root or lack the expected ecryptfs area, don't do anything extra
if [ "$(id -u)" = 0 ] || ! [ -d "/home/.ecryptfs/$USER" ]; then
  exec /usr/bin/ecryptfs-mount-private "$@"
  exit $?
fi

if grep -qs "$HOME/.Private $HOME ecryptfs" /proc/mounts; then
  exit # already mounted
fi

xauth="$(base64 $HOME/.Xauthority)"

if /usr/bin/ecryptfs-mount-private "$@"; then
  echo "$xauth" |base64 -d |xauth merge
fi

Isso mescla com segurança o xauth da sua casa criptografada com o xauth da casa não criptografada, que contém a autorização adicionada pelo SSH. Isso é essencial quando você está se conectando de vários hosts simultaneamente (sobrescrever o criptografado ~/.Xauthorityrevogaria autorizações para sessões criadas enquanto o home criptografado está montado).

Ele usa base64para converter dados binários em algo seguro para armazenar em uma variável.

informação relacionada