5

I'm trying to set up sftp-server but the client is getting an error, Connection closed by server with exitcode 1

/var/log/auth.log (below) doesn't help much, how can I find out what the error is?

I'm running 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

Update: I've been prodding this for a while now, I've got the sftp command on another server giving me a more useful error.

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

Everything I've found on the net suggests this id a problem with sftp-server but when I remove the chroot from sshd config I can access the system. I assume this means sftp-server is accessible and set up correctly.

Steven Monday
  • 13,599
  • 4
  • 36
  • 45
Jake
  • 619
  • 4
  • 7
  • 18

3 Answers3

3

I had exactly the same problem. Just like MikeyB suggests, you probably need to change the subsystem to internal-sftp. I changed the following in sshd_config:

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

To

Subsystem sftp internal-sftp

You also have to change the ForceCommand value in the Match stanza, to something like this:

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

Atleast that worked for me, hope this helps someone.

Henko
  • 31
  • 3
  • 1
    Oh, I just realized this wasn't really an answer to the question. More of a solution to the error in the logs. – Henko Apr 19 '12 at 11:19
  • Thank you! I've been searching for a way to debug/fix this issue for about an hour, and your answer was spot on! – Jon-Erik May 21 '14 at 18:24
1

The sftp-server is an external binary. It's likely not inside your chroot environment.

If you modify sshd_config to use the internal subsystem (if available) it should start working with chroot.

MikeyB
  • 39,291
  • 10
  • 105
  • 189
0

Just had this myself.

The user simply needed to have SSH permissions.