디렉토리를 공유하도록 sftp-server를 구성하고 싶지만 수정하는 방법을 모르겠습니다 /etc/ssh/sshd_config
.
내 요구 사항은 다음과 같습니다
1) 로그인은 인증서를 사용하지 않고 비밀번호 만 사용해야합니다 (예 : 인증은 비밀번호 방식을 사용함)
2) 사용자 : ftp, 비밀번호 : foo 및 공유 디렉토리 / home / ftp로 로그인하고 싶습니다.
3) 때때로 서버에서 파일을 다운로드 해야하는 응용 프로그램이 있으며 전체 운영 클라이언트로 로그인 할 필요가 없습니다.
지금까지 / etc / ssh / sshd_config에 다음 줄을 추가했습니다.
Protocol 2
Subsystem sftp /usr/libexec/sftp-server
Match User ftp
ForceCommand internal-sftp
ChrootDirectory /home/ftp
다른 모든 것은 주석이 달린다.
/home/ftp
현재 빈 디렉토리입니다.
루트 자격 증명을 사용하여 파일을 다운로드하려고하면 액세스가 작동하지만 ftp 자격 증명을 사용하면 작동하지 않습니다. 로그인 쉘을 설정해야합니까? 어떻게 든 / home / ftp를 채워야합니까?
편집 : 이것은 내 sshd 로그입니다.
subsystem request for sftp
debug1: subsystem: exec() internal-sftp
debug1: Forced command (config) 'internal-sftp '
debug2: fd 3 setting TCP_NODELAY
debug2: fd 9 setting O_NONBLOCK
debug2: fd 8 setting O_NONBLOCK
debug1: Received SIGCHLD.
debug1: session_by_pid: pid 17613
debug1: session_exit_message: session 0 channel 0 pid 17613
debug2: channel 0: request exit-status confirm 0
debug1: session_exit_message: release channel 0
debug2: channel 0: write failed
debug2: channel 0: close_write
debug2: channel 0: send eow
debug2: channel 0: output open -> closed
debug2: channel 0: read<=0 rfd 9 len 0
debug2: channel 0: read failed
debug2: channel 0: close_read
debug2: channel 0: input open -> drain
debug2: channel 0: ibuf empty
debug2: channel 0: send eof
debug2: channel 0: input drain -> closed
debug2: channel 0: send close
debug2: notify_done: reading
debug3: channel 0: will not send data after close
debug3: channel 0: will not send data after close
User child is on pid 17611
debug3: mm_request_receive entering
* 클라이언트가 여기에 멈춤
"루트"로 로그인하면 파일이 올바르게 다운로드됩니다. 구성 파일의 마지막 세 줄을 주석 처리하면 올바르게 다운로드됩니다 (즉, Match
줄과 다음 2 줄).
ssh
Windows의 PuTTY)를 사용하여 계속 연결할 수 있습니까 ? 어떤 버전의 OpenSSH를 사용하고 있습니까?