홈 폴더에 대한 Chroot SSH 사용자로 인해 연결이 거부됨

홈 폴더에 대한 Chroot SSH 사용자로 인해 연결이 거부됨

누군가에게 내가 가지고 있는 (Ubuntu 14.04) 서버에 대한 SSH 액세스 권한을 부여하려고 하는데, 그 사람을 자신의 홈 폴더로 제한하고 싶습니다. 그래서 따라해보려고 해요이 튜토리얼.

sudo adduser jailuser먼저 Jailuser를 사용하여 로그인이 가능한 사용자( )를 생성했습니다 . 그런 다음 사용자를 감옥에 가두기 위해 다음을 추가 /etc/ssh/sshd_config하고 ssh를 다시 시작했습니다.

Subsystem     sftp   internal-sftp
Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no

그런 다음 sftp 그룹을 만들었습니다.

sudo groupadd sftp

감옥 사용자를 변경하기 위해 다음 명령을 실행했습니다.

sudo usermod -G sftp jailuser
sudo usermod -s /bin/false jailuser
sudo chown root:root /home/jailuser
sudo chmod 0755 /home/jailuser

결과적으로 더 이상 로그인할 수 없습니다: ssh: connect to host xx.xxx.xx.223 port 22: Connection refused.

저는 서버 관리에 대한 초보자이기 때문에 여기서 길을 잃었습니다. 내가 뭘 잘못하고 있는지 아는 사람 있나요? 모든 팁/요령을 환영합니다!

답변1

이 문제가 발생했고 수정 사항은 "Subsystem sftp external-sftp" 스탠자 위에 "UsePAM yes"를 배치하는 것이었습니다. SSH를 다시 ​​시작하면 바로 작동합니다.

답변2

나는 당신이 게시 한 줄에 분명히 잘못된 것이 없다고 생각합니다 sshd_config. 여기에는 세 가지 가능성이 있는 것 같습니다.

  1. 실제로 잘못된 것은 없지만 sshd시작해야 합니다.
  2. sshd실행할 수 있지만 올바른 IP 주소나 포트에서 수신 대기하지 않습니다.
  3. 무언가가 sshd시작을 방해하고 있습니다.

root다음의 모든 경우에는 SSH 서버 호스트에 있어야 합니다 .

sshd(1)의 경우 "ps -fe | grep sshd"와 같은 명령을 실행하여 실행 중인지 확인하세요 . 그렇지 않은 경우 SSH 서버를 시작해 보십시오. Ubuntu에서는 다음을 실행합니다.

/etc/init.d/ssh restart

가 실행 중인 경우 sshd(2)로 이동합니다. sshd_config다음을 확인하세요 .Listen주소또는포트지시문. 이는 서버가 연결을 수신할 IP 주소와 포트를 제어합니다. 대부분의 경우 기본값을 사용하기 위해 주석 처리된 상태로 두거나 각각 0.0.0.0 및 22로 설정합니다.

시작하려고 했지만 sshd실행되지 않으면 로그 파일에서 /var/log의 메시지를 확인하여 시작하세요 sshd. 어떤 문제가 있는지 나타낼 수 있습니다. 그래도 문제가 해결되지 않으면 sshd디버깅을 통해 대화형으로 실행할 수 있습니다.

/usr/sbin/sshd -ddd            # Listen on the default port 22
/usr/sbin/sshd -ddd -p 1022    # Listen on port 1022

sshd터미널에 연결된 상태를 유지하고 많은 디버깅 정보를 인쇄합니다. 어떤 이유로든 계속 실행할 수 없는 경우 그 이유를 알려주어야 합니다.

관련 정보