
누군가에게 내가 가지고 있는 (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
. 여기에는 세 가지 가능성이 있는 것 같습니다.
- 실제로 잘못된 것은 없지만
sshd
시작해야 합니다. sshd
실행할 수 있지만 올바른 IP 주소나 포트에서 수신 대기하지 않습니다.- 무언가가
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
터미널에 연결된 상태를 유지하고 많은 디버깅 정보를 인쇄합니다. 어떤 이유로든 계속 실행할 수 없는 경우 그 이유를 알려주어야 합니다.