我在哪里可以找到 SFTP 的日志?

我在哪里可以找到 SFTP 的日志?

我正在尝试设置 sftp 服务器,但客户端出现错误,Connection closed by server with exitcode 1

/var/log/auth.log(如下)没有太大帮助,我如何找出错误是什么?

我正在运行 Ubuntu 10.04.1 LTS

sshd[27236]: Accepted password for theuser from (my ip) port 13547 ssh2
sshd[27236]: pam_unix(sshd:session): session opened for user theuser by (uid=0)
sshd[27300]: subsystem request for sftp
sshd[27236]: pam_unix(sshd:session): session closed for user theuser

更新:我已经对此进行了一段时间的探索,另一台服务器上的 sftp 命令给出了更有用的错误。

Request for subsystem 'sftp' failed on channel 0
Couldn't read packet: Connection reset by peer

我在网上找到的所有内容都表明这是 sftp-server 的问题,但是当我从 sshd 配置中删除 chroot 时,我可以访问系统。我认为这意味着 sftp-server 可以访问并且设置正确。

答案1

sftp-server 是外部二进制文件。它可能不在您的 chroot 环境中。

如果您修改 sshd_config 以使用内部子系统(如果可用),它应该开始与 chroot 一起工作。

答案2

我遇到了完全相同的问题。正如 MikeyB 所建议的那样,您可能需要将子系统更改为 internal-sftp。我在 sshd_config 中更改了以下内容:

Subsystem sftp /usr/lib/openssh/sftp-server

Subsystem sftp internal-sftp

您还必须将 Match 节中的 ForceCommand 值更改为如下内容:

Match User john-doe
    ChrootDirectory %h
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

至少这对我有用,希望这对某些人有帮助。

答案3

我自己也刚刚经历过这个。

用户只需拥有 SSH 权限。

相关内容