Saya ingin mengonfigurasi sftp-server untuk berbagi direktori tetapi saya tidak tahu cara memodifikasi /etc/ssh/sshd_config
.
Persyaratan saya adalah:
1) Login tidak boleh menggunakan sertifikat, hanya kata sandi (yaitu otorisasi menggunakan metode kata sandi)
2) Saya ingin login dengan pengguna: ftp, kata sandi: foo dan bagikan direktori / home / ftp.
3) Saya memiliki aplikasi yang dari waktu ke waktu perlu mengunduh file dari server, saya tidak perlu masuk dengan klien yang beroperasi penuh.
Sejauh ini saya menambahkan baris berikut ke / etc / ssh / sshd_config:
Protocol 2
Subsystem sftp /usr/libexec/sftp-server
Match User ftp
ForceCommand internal-sftp
ChrootDirectory /home/ftp
Semua yang lain dikomentari.
/home/ftp
adalah direktori kosong saat ini.
Akses berfungsi jika saya mencoba mengunduh file menggunakan kredensial root tetapi tidak berfungsi jika saya menggunakan kredensial ftp. Apakah saya perlu mengatur shell login? Apakah saya perlu mengisi / home / ftp?
EDIT: Ini adalah log sshd saya:
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
* Klien hang di sini (sampai waktu habis) *
Harap perhatikan, sekali lagi, bahwa jika saya masuk sebagai "root" file akan diunduh dengan benar. Itu juga mengunduh dengan benar jika saya mengomentari tiga baris terakhir dari file konfigurasi (yaitu Match
baris dan 2 berikut).
ssh
, atau Putty pada Windows? Versi OpenSSH apa yang Anda gunakan?Jawaban:
Anda perlu memastikan
/home/ftp
dimiliki olehroot
dan bahwa grup dan orang lain tidak memiliki izin menulis, misalnyachmod 0755
. Anda perlu menambahkan sub-direktori untukftp
menambahkan file.Anda juga memerlukan
internal-sftp
subsistem, jika tidak, Anda perlu menyediakanchroot
lingkungan yang tepat di/home/ftp
:Untuk melarang semua jenis login selain kata sandi, masukkan
Ini diaktifkan secara default.
sumber
/var/log/secure
, setidaknya di situlah saya mendapatkannya di sistem saya./var/log/messages
. Saya memiliki yang berikut ini:Failed none for ftp [...]
diikuti olehAccepted password for ftp [...]
danUser child is on pid 7658
. Klien hang dan kemudian keluarsshd_config
baik-baik saja.