로컬 터미널이 동일한 사용자로 로그인되어 있어도 "홈 디렉터리를 찾을 수 없습니다"라는 메시지와 함께 ssh가 실패합니다(디렉토리가 존재하고 권한이 있음).

로컬 터미널이 동일한 사용자로 로그인되어 있어도 "홈 디렉터리를 찾을 수 없습니다"라는 메시지와 함께 ssh가 실패합니다(디렉토리가 존재하고 권한이 있음).

ssh가 일부 사용자의 홈 디렉토리(존재함)를 찾을 수 없지만 동일한 사용자가 로컬 터미널을 통해 내 컴퓨터에 직접 로그인할 수 있는 이상한 문제가 있습니다.

세부사항은 다음과 같습니다:

저는 학생들이 SFTP를 통해 과제 등을 제출할 수 있는 서버(server.domain.edu)를 관리하고 있습니다. 머신에서 Fedora Linux 22를 실행 중입니다. 초기 설정으로 서버에 ssh를 연결하고 기본 비밀번호를 변경했습니다.

다음을 통해 계정을 설정했습니다.

useradd -s /bin/changepasswd -p `openssl passwd -1 studentname` studentuname

Changepasswd는 몇 가지 지침을 인쇄하고 passwd를 호출하는 간단한 쉘 스크립트입니다. 권한은 /bin/changepasswd755이고 소유자:그룹은 루트:루트입니다.

home/studentname이제 SFTP 관련 문제를 피하기 위해 /의 소유권과 그룹을 변경합니다 . ls -ld /home/studentname생산하다

drwxr-xr-x. 24 root teacher 4096 Jan 18 13:58 studentname

미스터리한 점은 제가 십여 명의 학생에 대해 정확히 동일한 설정으로 계정을 만들었다는 것입니다. 일부의 경우 예상대로 작동합니다(로그인하면 시스템이 Changepasswd를 실행하고 세션이 스크립트와 함께 종료됩니다). 나머지 경우에는 다음과 같은 일이 발생합니다.

ssh [email protected]

Could not chdir to home directory /home/studentname: No such file or directory
/bin/changepasswd: No such file or directory
Connection to server.domain.edu closed.

반면에 ssh 문제가 있는 동일한 사용자가 서버의 로컬 터미널을 사용하는 경우(로컬 텍스트 로그인) 위의 오류 메시지 없이 모든 것이 예상대로 실행됩니다. Mac에서 putty/ssh 명령과 같은 클라이언트를 사용하든, 서버의 xterm에서 서버로 ssh를 사용하든(로컬에서 직접 로그인하는 대신) SSH 문제가 있습니다.

sshd_config 파일:

sshd_config는 약간 특이합니다. 각 학생 이름에 대해 다음과 같습니다.

일치 그룹 학생 이름
ForceCommand /bin/changepasswd
ChrootDirectory /home/studentname
PermitTunnel 아니요
AllowAgentForwarding 아니요
X11Forwarding 아니요
AllowTcpForwarding 아니요

다시 한번 말씀드리지만, 이는 실제로 일부 학생들에게는 효과가 있지만 다른 학생들에게는 그렇지 않다는 점에 유의하십시오. sshd_config 파일의 나머지 부분은 기본값입니다.

무엇이 잘못될 수 있나요?

관련 정보