암호화된 홈 디렉터리 및 SSH(Key-Only-Authentication)로 인해 X11 전달이 중단됨

암호화된 홈 디렉터리 및 SSH(Key-Only-Authentication)로 인해 X11 전달이 중단됨

Ubuntu 16.04를 설치하는 동안 홈 디렉터리를 암호화하는 옵션을 선택하기로 결정했습니다. 또한 보안을 위해 비밀번호 로그인이 비활성화되어 있으므로 SSH 키 전용 인증을 사용합니다.

다음을 사용하여 ".ssh/authorized_keys 때문에 로그인할 수 없음" 문제를 해결할 수 있었습니다.https://stephen.rees-carter.net/thought/encrypted-home-directories-ssh-key-authentication. 요약하자면:

sudo vim ~/.profile

그런 다음 입력

ecryptfs-mount-private
cd /home/username

그러나 이제 SSH를 통한 X11 전달이 중단되었습니다. MMC(MIT Magic Cookie) .Xauthority 파일이 암호화되지 않은 홈 디렉터리에 포함되지 않는 것 같습니다.

답변1

내 초기 생각은 ~/.profile을 수정하여 읽도록 하는 것입니다.

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

여기서 /temp/$USERNAME은 $USERNAME이 소유하고 700개의 권한을 갖는 디렉토리입니다. 하지만 이 옵션이 얼마나 안전한지는 잘 모르겠습니다.

답변2

나는 이것을 내로 사용했습니다 /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

이렇게 하면 암호화된 집의 xauth를 SSH에서 추가한 인증이 포함된 암호화되지 않은 집의 xauth와 안전하게 병합됩니다. 이는 여러 호스트에서 동시에 연결할 때 필수적입니다. 암호화된 호스트를 덮어쓰면 암호화된 ~/.Xauthority홈이 마운트되는 동안 생성된 세션에 대한 인증이 취소됩니다.

base64이진 데이터를 변수에 저장하기에 안전한 것으로 변환하는 데 사용됩니다 .

관련 정보