我想将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
目前是一个空目录。
如果我尝试使用根凭据下载文件,则Access可以工作,但是如果我使用ftp凭据,则访问不起作用。我需要设置一个登录shell吗?我是否需要以某种方式填充/ 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
*客户端挂在这里(直到发生超时)*
再次请注意,如果我以“ root”身份登录,则文件将正确下载。如果我注释掉配置文件的最后三行(即该Match
行及其后的2行),它也可以正确下载。
ssh
Windows上的或PuTTY)进行连接吗?您正在使用哪个版本的OpenSSH?