SSH 사용자는 홈 디렉토리로 어떻게 루트를 이동합니까?
이것이 sshd_config 파일에 설정한 것입니다:
ChrootDirectory %h
Subsystem sftp /usr/libexec/openssh/sftp-server
SSH 버전은 6.6.1입니다.
로그인을 시도할 때 나타나는 오류는 다음과 같습니다.
Could not chdir to home directory /home/user: No such file or directory
/bin/bash: no such file or directory
답변1
사용자를 자신의 디렉토리로 chroot하려면 쉘과 디렉토리에서 실행하는 데 필요한 모든 것이 필요합니다. 이것이 귀하의 오류가 말하는 것입니다. Chroot가 루트를 /home/user로 변경한 다음 /home/user/bin/bash에서 /bin/bash(사용자가 선택한 셸)를 찾으려고 하는데 오류가 발생하여 실패합니다.
답변2
첫 번째 오류 메시지(" chdir
...할 수 없습니다")는 다음에서 나타납니다.Chroot 디렉토리당신의 sshd_config
. 문서에서:
Chroot 디렉토리
chroot(2)
인증 후 디렉터리 경로 이름을 지정합니다. 경로 이름의 모든 구성 요소는 루트가 소유한 디렉터리여야 하며 다른 사용자나 그룹이 쓸 수 없어야 합니다. 루트를 변경한 후sshd(8)
작업 디렉터리를 사용자의 홈 디렉터리로 변경합니다.
뒤쪽에chroot를 시도할 때 찾을 수 없는 것으로 나타납니다 bash
. 이는 완전한 chroot 환경 설정이 없는 것과 관련이 있습니다(문서 참조 chroot(2)
).
사용자의 상호 작용 컨텍스트를 chroot
"d"(단순한 "d"가 아닌 sftp
)로 지정하려면 해야 할 일이 많습니다. 최종 목표에 따라 단순히 제한된 쉘을 사용하고 싶을 수도 있습니다( 설정 방법에 대한 아이디어를 찾으려면 "restricted"를 확인 bash(1)
하고 검색하세요).vim(1)
다른 유사한 질문에 대한 참조를 찾았습니다.askubuntu.com등.Archlinux.org(왜 이 디렉토리를 루트가 소유해야 하는지에 대한 설명을 보려면 두 번째 디렉토리의 맨 아래로 스크롤하십시오.)