El directorio de inicio cifrado y SSH (autenticación de sólo clave) interrumpen el reenvío X11

El directorio de inicio cifrado y SSH (autenticación de sólo clave) interrumpen el reenvío X11

Al instalar Ubuntu 16.04, decidí elegir la opción de cifrar mi directorio de inicio. También utilizo la autorización de solo clave ssh, ya que los inicios de sesión con contraseña están deshabilitados por seguridad.

Pude resolver el problema de "no poder iniciar sesión porque .ssh/authorized_keys" usando esto:https://stephen.rees-carter.net/thinked/encrypted-home-directories-ssh-key-authentication. En resumen:

sudo vim ~/.profile

y luego entrando

ecryptfs-mount-private
cd /home/username

Pero ahora, el reenvío X11 a través de ssh no funciona. Parece que el archivo MMC (MIT Magic Cookie) .Xauthority no llega al directorio de inicio no cifrado.

Respuesta1

Mi idea inicial es modificar ~/.profile para que diga:

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

Donde /temp/$USERNAME es un directorio propiedad de $USERNAME y tiene 700 permisos. Sin embargo, no estoy seguro de qué tan segura sea esta opción.

Respuesta2

He estado usando esto como mi /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

Esto fusiona de forma segura la xauth de su hogar cifrado con la xauth de su hogar no cifrado, que contiene la autorización agregada por SSH. Esto es esencial cuando se conecta desde varios hosts simultáneamente (sobrescribir el cifrado ~/.Xauthorityrevocaría las autorizaciones para las sesiones creadas mientras el hogar cifrado está montado).

Se utiliza base64para convertir datos binarios en algo seguro para almacenar en una variable.

información relacionada