Linux 컨테이너는 내 홈 디렉토리 외부에서 authorized_keys 파일을 사용할 수 있지만이를 기반으로하는 임시 컨테이너는 사용할 수 없습니다. 왜?


10

우분투 12.10에서는 lxc-create 유틸리티를 사용하여 'ubuntu'유형의 LXC를 만들었습니다. 그런 다음 lxc-start-ephemeral 유틸리티를 사용하여이 컨테이너를 기반으로 임시 컨테이너를 만들고 비밀번호가없는 ssh를 사용하는 컨테이너에 연결해야합니다. 그러나 / home / ubuntu 폴더를 깨끗하게 유지해야하므로 일반적인 .ssh / authorized_keys 파일을 거기에 넣을 수 없습니다.

'암호화 된 홈 디렉토리'섹션 여기가 홈 디렉토리에서의 authorized_keys를 이동하는 방법을 알려줍니다. 기본 컨테이너 내부에서 해당 지침을 따른 후 암호를 제공하지 않고 기본 컨테이너로 ssh 할 수 있습니다.

그러나 기본 컨테이너에서 임시 컨테이너를 시작하면 암호가 없으면 ssh를 입력 할 수 없습니다. (임시 컨테이너 혼동을 일으킬 정도로, 패스워드없이 SSH를 수행 authorized_keys에이 /home/ubuntu/.ssh에서 평소 자리에있을 때 일을.) 어떻게이 문제를 해결할 수 있습니까?

호스트 키를 받아 들일 때부터 ssh -v가 말한 내용은 다음과 같습니다.

debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/ubuntu/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/ubuntu/.ssh/id_dsa
debug1: Trying private key: /home/ubuntu/.ssh/id_ecdsa
debug1: Next authentication method: password

임시 컨테이너에있는 /var/log/auth.log의 관련 부분은 다음과 같습니다.

Apr 11 00:06:52 test-temp-SNeWevO sshd[306]: Authentication refused: bad ownership or modes for directory /
Apr 11 00:06:54 test-temp-SNeWevO sshd[306]: Accepted password for ubuntu from 10.0.3.1 port 59677 ssh2
Apr 11 00:06:54 test-temp-SNeWevO sshd[306]: pam_env(sshd:setcred): Unable to open env file: /etc/default/locale: No such file or directory
Apr 11 00:06:54 test-temp-SNeWevO sshd[306]: pam_unix(sshd:session): session opened for user ubuntu by (uid=0)

표준 Ubuntu 12.10 AMI를 기반으로하는 새로운 AWS 마이크로 인스턴스에서이 테스트를 수행했으며 도움이되는 경우이를 재현하는 방법에 대한 자세한 지침을 제공 할 수 있습니다.


업데이트 : 문제가 lxc-start-ephemeral에서 사용하는 이상한 파일 시스템 일 수 있다고 생각하여 변경했습니다. 먼저 OVERLAY_DIR 및 EPHEMERAL_BIND_DIR이 tmpfs가되는 것을 막았습니다. 이제는 디렉토리 일뿐입니다. 그건 고치지 않았다. 그런 다음 임시 컨테이너의 루트 파일 시스템을 overlayfs에서 간단한 바인드 마운트로 변경했습니다. 그것은 그것을 고쳤다. 불행히도 오버레이가 필요하기 때문에 문제가 해결되지 않습니다.
Anand

답변:


1

이것은 오래된 질문이지만 여전히 Google에 나타납니다 ...

Authentication refused: bad ownership or modes for directory /

sshd 서비스가 authorized_keys가있는 디렉토리에 대해 엄격한 권한 요구 사항을 가지고 있기 때문에 루트 디렉토리 (/)가 컨테이너 구성 방식과 관련이있을 수 있습니다.

이 경우 /의 권한을 변경할 수없는 경우 다음과 같이 설정할 수 있습니다

StrictModes no

sshd_config에서.
서버에 여러 사용자가 액세스하지 않는 경우 보안에 거의 영향을 미치지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.