암호화된 홈에서는 SSH 공개 키 로그인을 수행할 수 없습니다.

암호화된 홈에서는 SSH 공개 키 로그인을 수행할 수 없습니다.

SSH 공개 키를 통해 내 서버에 로그인할 수 없습니다. 문제는 내 집이 암호화되는 것과 관련된 것 같습니다. Ubuntu 설치 설정에서 "내 홈 폴더 암호화" 옵션을 선택했습니다. 권한은 /home/MY-USER700입니다.

다른 워크스테이션을 사용해 보았는데 모든 것이 잘 작동합니다. 누군가가 암호화를 제거하지 않고 이 문제를 해결하는 데 도움을 줄 수 있다면 기쁠 것입니다.

답변1

홈 디렉토리가 암호화된 경우 ssh 데몬은 홈 디렉토리에 들어가서 개인 키가 공개 키와 일치하는지 확인할 수 없습니다. 결국 .ssh 폴더는 암호화됩니다.

이 문제에 대한 해결책은 인증 키가 포함된 .ssh 폴더를 암호화되지 않은 홈 디렉터리에 일반 텍스트로 저장하는 것입니다. 그러나 암호화 기술이 귀하의 비밀번호를 모든 것을 해독하는 키로 사용하는 경우에도 모든 것을 해독하려면 비밀번호를 입력해야 합니다.

따라서 진정한 비밀번호 없는 로그인은 여기서 작동하지 않습니다. (암호 해독 프로세스에 자동으로 입력될 수 있도록 암호를 일반 텍스트로 어딘가에 저장하려는 경우가 아니라면 전혀 암호화하지 않는 것보다 덜 안전합니다.)

홈 디렉토리를 암호화하기 위해 어떤 기술을 사용하고 있습니까?

업데이트: ubuntu는 ecryptfs를 사용하여 로그인 시 암호화된 파티션을 마운트합니다(따라서 비밀번호를 제공할 때) ssh가 .ssh 폴더를 다시 찾도록 하려면 다음을 수행할 수 있습니다.

# copy your .ssh folder 
mkdir /tmp/mine
chmod 700 /tmp/mine
mkdir /tmp/mine/.ssh
chmod 700 /tmp/mine/.ssh
cp ~/.ssh/authorized_keys /tmp/mine/.ssh/
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/ -rf

이제 다시 로그인할 수 있지만 홈 폴더는 자동으로 해독되지 않습니다. 암호화되지 않은 상태로 설치하려면 로그인할 때마다 다음을 입력해야 합니다.

/sbin/mount.ecryptfs_private

로그인 비밀번호를 다시 묻습니다.

이에 대한 자세한 내용은 여기에서 확인할 수 있습니다. https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/362427

답변2

ssh_config 파일에서 개인 키가 있는 위치를 변경할 수 있습니다. 에 새 폴더를 만들고 그 안에 개인 키 파일을 넣은 다음 옵션을 변경하여 새 위치를 확인하는 등의 작업을 수행 /etc/ssh/keys/id_rsaIdentityFile있습니다 ssh_config. 이 과정에서 개인 키를 보호하기 위해 특정 조치를 취해야 합니다.

이는 귀하가 컴퓨터의 유일한 사용자라고 가정합니다. 그렇지 않은 경우 다음 /etc/ssh/keys/john/과 같은 폴더를 만든 /etc/ssh/keys/dogbert/다음 IdentityFile옵션을 넣을 수 있습니다./etc/ssh/keys/%u/id_rsa

답변3

ecryptfs를 사용하여 홈 디렉터리가 암호화된 아치 Linux 서버에서도 동일한 문제가 발생했습니다. SSH 키를 사용하여 로그인하려면 먼저 서버 콘솔에서 로그인하여 해독된 .ssh/authorized_keys 파일을 가져와야 했습니다. 저는 다음과 같이 해결했습니다. 먼저 .ssh 디렉터리의 내용을 안전한 위치에 복사했습니다. 그런 다음 루트 사용자로 다음을 수행합니다.

해당 home/.ecryptfs/<my username>디렉터리 내에 700개의 권한이 있고 내 사용자 이름과 그룹(루트가 아님) 아래에 .ssh 디렉터리를 만들었습니다. 그런 다음 원본 .ssh 디렉터리(제 경우에는 Authorized_keys 파일)의 내용을 금고에서 권한 600을 사용하여 내 사용자 이름과 그룹 아래에 이 위치로 복사했습니다. /etc/ssh/sshd_config 파일에서 Safado의 솔루션을 사용하여 다음 옵션을 사용했습니다. AuthorizedKeysFile /home/.ecryptfs/%u/.ssh/authorized_keys

마지막으로 내 홈 디렉터리와 내 사용자 이름 아래에서 .ssh 디렉터리와 해당 콘텐츠를 삭제하고 소프트 링크로 대체했습니다.

rm -rf .ssh (또는 사용 mv .ssh .ssh.bkp)

ln -s /home/.ecryptfs/<my username>/.ssh .

관련 정보