"Write Failed: Broken Pipe" beim login über ssh mit einem bestimmten Benutzer

Ich bin versucht, setup-ein SSHFTP server, und auf die Verbindung via apache@localhost, bin ich sofort getrennt mit einem "Write Failed: Broken Pipe" error Meldung. Ich kann eine Verbindung gut mit jack@localhost, aber nicht für den Nutzer apache.

Diese sind die einzigen Einstellungen, die ich Hinzugefügt sshd_config (ich will nur damit apache, wenn ich ihn):

Match User apache
    ChrootDirectory /apache
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand /usr/lib/openssh/sftp-server
Match
#AllowUsers apache

Und das ist, was ich Hinzugefügt, um ssh_config:

ServerAliveInterval 120
TCPKeepAlive no

Machte ich sicher, dass der Benutzer apache hatte volle Berechtigungen auf das /apache-Ordner, und ich kann melden Sie sich als dieser Benutzer fein und ändern von Elementen im Terminal. Der Ordner hat nur 2 Dateien: index.html und test.php

Ich ging auch zu einem anderen computer auf dem Netzwerk, und benutzt FileZilla einloggen als der Benutzer jack. Es hat Prima funktioniert.

Dies ist das Protokoll des Terminals, wenn ich versuche zu verbinden.

jack@JacksServer:~$ ssh -v apache@localhost
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to localhost [127.0.0.1] port 22.
debug1: Connection established.
debug1: identity file /home/jack/.ssh/id_rsa type -1
debug1: identity file /home/jack/.ssh/id_rsa-cert type -1
debug1: identity file /home/jack/.ssh/id_dsa type -1
debug1: identity file /home/jack/.ssh/id_dsa-cert type -1
debug1: identity file /home/jack/.ssh/id_ecdsa type -1
debug1: identity file /home/jack/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.1
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA bb:f3:74:9d:97:80:89:dc:d9:68:53:5c:f7:25:19:4e
debug1: Host 'localhost' is known and matches the ECDSA host key.
debug1: Found key in /home/jack/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/jack/.ssh/id_rsa
debug1: Trying private key: /home/jack/.ssh/id_dsa
debug1: Trying private key: /home/jack/.ssh/id_ecdsa
debug1: Next authentication method: password
apache@localhost's password: 
debug1: Authentication succeeded (password).
Authenticated to localhost ([127.0.0.1]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
Write failed: Broken pipe
jack@JacksServer:~$

Ubuntu-version info:

Distributor ID: Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:    12.04
Codename:   precise

Edit:

Lief ich den Befehl sudo grep -ir ssh /var/log/* und bekam dies:

/var/log/auth.log~:Aug 13 16:08:15 JacksServer sshd[32292]: fatal: bad ownership or modes for chroot directory "/apache"
/var/log/auth.log~:Aug 13 16:08:15 JacksServer sshd[32156]: pam_unix(sshd:session): session closed for user apache

Versuchte ich tun chmod 755 /apache wie einige websites haben vorgeschlagen, und den Eigentümer wechseln, aber ich bin noch immer dieser Fehler. Der Ordner ist derzeit im Besitz des Benutzers apache.

Etwas mehr info über das apache-Benutzer:

root@JacksServer:/apache# ls -la /apache
total 24
drwxr-xr-x  4 apache root    4096 Aug 13 15:49 .
drwxr-xr-x 29 root   root    4096 Aug 13 03:06 ..
drwxr-xr-x  2 apache nogroup 4096 Aug 13 13:57 .cache
-rw-r--r--  1 apache root       5 Aug 13 03:56 index.html
-rw-r--r--  1 apache root       0 Aug 13 03:56 index.html~
drwxr-xr-x  8 apache root    4096 Aug 13 15:51 .ssh
-rw-r--r--  1 apache root      20 Aug 13 03:59 test.php
-rw-r--r--  1 apache root       0 Aug 13 03:59 test.php~
root@JacksServer:/apache# ls -la /apache/.ssh
total 92
drwxr-xr-x  8 apache root  4096 Aug 13 15:51 .
drwxr-xr-x  4 apache root  4096 Aug 13 15:49 ..
-rw-r--r--  1 apache jack   220 Jun  6 20:08 .bash_logout
drwxr-xr-x 19 apache jack  4096 Aug 13 15:04 .cache
drwxr-xr-x  3 apache jack  4096 Jun  6 20:49 .compiz-1
drwxr-xr-x  3 apache jack  4096 Jun  6 20:22 .dbus
drwxr-xr-x  5 apache jack  4096 Aug 13 05:37 .gconf
-rw-r-----  1 apache jack     0 Aug 13 15:47 .gksu.lock
drwxr-xr-x  3 apache jack  4096 Jun  6 20:22 .local
-rw-r--r--  1 apache jack   675 Jun  6 20:08 .profile
-rw-------  1 apache jack   256 Jun  6 20:22 .pulse-cookie
drwxr-xr-x  2 apache jack  4096 Aug 13 14:20 .ssh
-rw-------  1 apache jack    56 Aug 13 04:45 .Xauthority
-rw-------  1 apache jack 44215 Aug 13 13:54 .xsession-errors
zeigen Sie uns ls -la /apache ls -la /apache/.ssh (beide unter der Annahme, dass /apache ist das home-Verzeichnis für diesen Benutzer und die /etc/passwd Eintrag für apache.
Ich fügte hinzu, die Ergebnisse dieser Befehle zu dem original-Beitrag. /apache ist das home-Verzeichnis der Benutzer von apache.
OK, nach dem spielen, um mit den Berechtigungen, die ich aus dem Ordner gesteuert durch die Wurzel, und chmodded es zu 755. Jetzt bekomme ich die Fehlermeldung /bin/false: No such file or directory
Ich änderte ForceCommand /usr/lib/openssh/sftp-server zu ForceCommand internal-sftp und jetzt funktioniert es wenn ich SFTP! Danke für den Hinweis mich in die richtige Richtung.

InformationsquelleAutor Jack Cole | 2013-08-13

Schreibe einen Kommentar