Verschlüsseltes Home-Verzeichnis und SSH (Key-Only-Authentication) unterbrechen die X11-Weiterleitung

Verschlüsseltes Home-Verzeichnis und SSH (Key-Only-Authentication) unterbrechen die X11-Weiterleitung

Bei der Installation von Ubuntu 16.04 habe ich mich für die Option entschieden, mein Home-Verzeichnis zu verschlüsseln. Außerdem verwende ich die SSH-Schlüssel-only-Authentifizierung, da Kennwortanmeldungen aus Sicherheitsgründen deaktiviert sind.

Ich konnte das Problem „Anmeldung nicht möglich wegen .ssh/authorized_keys“ folgendermaßen lösen:https://stephen.rees-carter.net/thought/encrypted-home-directories-ssh-key-authentication. In Summe:

sudo vim ~/.profile

und dann eingeben

ecryptfs-mount-private
cd /home/username

Aber jetzt ist die X11-Weiterleitung über SSH defekt. Es scheint, dass die MMC (MIT Magic Cookie) .Xauthority-Datei nicht in das unverschlüsselte Home-Verzeichnis gelangt.

Antwort1

Mein erster Gedanke ist, ~/.profile wie folgt zu ändern:

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

Wobei /temp/$USERNAME ein Verzeichnis ist, das $USERNAME gehört und über 700 Berechtigungen verfügt. Ich bin mir jedoch nicht sicher, wie sicher diese Option ist.

Antwort2

Ich habe dies als meins verwendet /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

Dadurch wird das XAuth Ihres verschlüsselten Home-Servers sicher mit dem XAuth Ihres unverschlüsselten Home-Servers zusammengeführt, der die von SSH hinzugefügte Autorisierung enthält. Dies ist wichtig, wenn Sie sich von mehreren Hosts gleichzeitig aus verbinden (das Überschreiben des verschlüsselten Home-Servers ~/.Xauthoritywürde Autorisierungen für Sitzungen widerrufen, die erstellt wurden, während der verschlüsselte Home-Server gemountet war).

Es wird verwendet base64, um Binärdaten in etwas Sicheres umzuwandeln, das in einer Variablen gespeichert werden kann.

verwandte Informationen