Chcę skonfigurować serwer sftp do udostępniania katalogu, ale nie wiem, jak to zmienić /etc/ssh/sshd_config
.
Moje wymagania to:
1) Zaloguj się nie będzie używać certyfikatów, tylko hasło (tj. Autoryzacja używa metody hasła)
2) Chcę zalogować się do użytkownika: ftp, hasło: foo i udostępnij katalog / home / ftp.
3) Mam aplikację, która od czasu do czasu musi pobierać plik z serwera, nie muszę się logować przy użyciu pełnego klienta operacyjnego.
Do tej pory dodałem następujące wiersze do / etc / ssh / sshd_config:
Protocol 2
Subsystem sftp /usr/libexec/sftp-server
Match User ftp
ForceCommand internal-sftp
ChrootDirectory /home/ftp
Cała reszta jest komentowana.
/home/ftp
jest obecnie pustym katalogiem.
Access działa, jeśli próbuję pobrać plik przy użyciu poświadczeń użytkownika root, ale nie działa, jeśli używam poświadczeń ftp. Czy muszę ustawić powłokę logowania? Czy muszę jakoś wypełnić / home / ftp?
EDYCJA: To jest mój dziennik 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
* Klient zawiesza się tutaj (aż do przekroczenia limitu czasu) *
Pamiętaj, że jeśli zaloguję się jako „root”, plik zostanie pobrany poprawnie. Pobiera również poprawnie, jeśli skomentuję ostatnie trzy wiersze pliku konfiguracyjnego (tj. Match
Wiersz i kolejne 2).
ssh
Lub PuTTY w systemie Windows? Jakiej wersji OpenSSH używasz?Odpowiedzi:
Musisz upewnić się, że
/home/ftp
jest własnością,root
a ta grupa i inne osoby nie mają uprawnień do zapisu, npchmod 0755
. Musisz dodać podkatalogi,ftp
aby dodać pliki.Potrzebujesz również
internal-sftp
podsystemu, w przeciwnym razie musisz zapewnić odpowiedniechroot
środowisko w/home/ftp
:Aby zabronić logowania bez hasła, wprowadź
Są one domyślnie aktywowane.
źródło
/var/log/secure
, przynajmniej tam dostaję je w moim systemie./var/log/messages
. Mam następujące:Failed none for ftp [...]
następnieAccepted password for ftp [...]
iUser child is on pid 7658
. Klient się zawiesza, a następniesshd_config
było w porządku.