[Chrootssh-users] Making user sftp only
Brought to you by:
punkball
From: Cole T. <col...@gm...> - 2006-12-31 04:39:57
|
Hey all - I've got the basic chrootssh all set up. I only have one more step I need to follow through on and everything is all set. Of course, that one last step is causing me grief. :) Here's the setup. I downloaded the prepatched openssh tarball and built it, installed to /usr/local/openssh-chroot/ I created a user (chroot-test) who's home dir is set to /home/chroot-test/./ with a shell of /bin/sh I've set up bin/, dev/, lib/, and usr/ in the home directory in a seemingly correct fashion (probed all the bin files with ldd and copied all appropriate libs). I started the chroot-ssh daemon on a separate port for testing, and everything seems to work fine. ssh'ing in to a normal user works as expected, and ssh'ing in to the chrooted user works as expected. The problem is sftp. I try to sftp in and it closes the connection as soon as I'm authenticated. I've copied /usr/local/openssh-chroot/libexec/sftp-server into the corresponding spot in /home/chroot-test, I've run ldd against sftp-server and copied all the libs to the right places, and I've made sure that sftp-server (both of them, just for the hell of it) are chmod 4755. Here's the output if I run /usr/local/openssh-chroot/sbin/sshd -D -ddd and then try to connect remotely via sftp. Any help is appreciated. root@host1:/home/chroot-test# /usr/local/openssh-chroot/sbin/sshd -D -ddd debug2: load_server_config: filename /usr/local/openssh-chroot/etc/sshd_config debug2: load_server_config: done config len = 182 debug2: parse_server_config: config /usr/local/openssh-chroot/etc/sshd_config len 182 debug3: /usr/local/openssh-chroot/etc/sshd_config:13 setting Port 2222 debug3: /usr/local/openssh-chroot/etc/sshd_config:106 setting Subsystem sftp /usr/local/openssh-chroot/libexec/sftp-server debug1: sshd version OpenSSH_4.5p1 debug1: private host key: #0 type 0 RSA1 debug3: Not a RSA1 key file /usr/local/openssh-chroot/etc/ssh_host_rsa_key. debug1: read PEM private key done: type RSA debug1: private host key: #1 type 1 RSA debug3: Not a RSA1 key file /usr/local/openssh-chroot/etc/ssh_host_dsa_key. debug1: read PEM private key done: type DSA debug1: private host key: #2 type 2 DSA debug1: rexec_argv[0]='/usr/local/openssh-chroot/sbin/sshd' debug1: rexec_argv[1]='-D' debug1: rexec_argv[2]='-ddd' debug2: fd 3 setting O_NONBLOCK debug1: Bind to port 2222 on ::. Server listening on :: port 2222. debug2: fd 4 setting O_NONBLOCK debug1: Bind to port 2222 on 0.0.0.0. Generating 768 bit RSA key. RSA key generation complete. debug3: fd 4 is not O_NONBLOCK debug1: Server will not fork when running in debugging mode. debug3: send_rexec_state: entering fd = 7 config len 182 debug3: ssh_msg_send: type 0 debug3: send_rexec_state: done debug1: rexec start in 4 out 4 newsock 4 pipe -1 sock 7 debug1: inetd sockets after dupping: 3, 3 debug3: Normalising mapped IPv4 in IPv6 address debug3: Normalising mapped IPv4 in IPv6 address Connection from xx.xx.xx.xx port 51742 debug1: Client protocol version 2.0; client software version OpenSSH_4.2p1 Debian-7ubuntu3.1 debug1: match: OpenSSH_4.2p1 Debian-7ubuntu3.1 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-1.99-OpenSSH_4.5 debug2: fd 3 setting O_NONBLOCK debug3: privsep user:group 100:65534 debug1: permanently_set_uid: 100/65534 debug1: list_hostkey_types: ssh-rsa,ssh-dss debug1: SSH2_MSG_KEXINIT sent debug2: Network child is on pid 19299 debug3: preauth child monitor started debug3: mm_request_receive entering debug1: SSH2_MSG_KEXINIT received debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ssh-rsa,ssh-dss debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rij...@ly...,aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rij...@ly...,aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hma...@op...,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hma...@op...,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,zl...@op... debug2: kex_parse_kexinit: none,zl...@op... debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 debug2: kex_parse_kexinit: ssh-rsa,ssh-dss debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rij...@ly...,aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rij...@ly...,aes128-ctr,aes192-ctr,aes256-ctr debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hma...@op...,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,hmac-ripemd160,hma...@op...,hmac-sha1-96,hmac-md5-96 debug2: kex_parse_kexinit: none,zl...@op...,zlib debug2: kex_parse_kexinit: none,zl...@op...,zlib debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: debug2: kex_parse_kexinit: first_kex_follows 0 debug2: kex_parse_kexinit: reserved 0 debug2: mac_init: found hmac-md5 debug1: kex: client->server aes128-cbc hmac-md5 none debug2: mac_init: found hmac-md5 debug1: kex: server->client aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST received debug3: mm_request_send entering: type 0 debug3: mm_choose_dh: waiting for MONITOR_ANS_MODULI debug3: mm_request_receive_expect entering: type 1 debug3: mm_request_receive entering debug3: monitor_read: checking request 0 debug3: mm_answer_moduli: got parameters: 1024 1024 8192 debug3: mm_request_send entering: type 1 debug2: monitor_read: 0 used once, disabling now debug3: mm_request_receive entering debug3: mm_choose_dh: remaining 0 debug1: SSH2_MSG_KEX_DH_GEX_GROUP sent debug2: dh_gen_key: priv key bits set: 120/256 debug2: bits set: 503/1024 debug1: expecting SSH2_MSG_KEX_DH_GEX_INIT debug2: bits set: 512/1024 debug3: mm_key_sign entering debug3: mm_request_send entering: type 4 debug3: mm_key_sign: waiting for MONITOR_ANS_SIGN debug3: mm_request_receive_expect entering: type 5 debug3: mm_request_receive entering debug3: monitor_read: checking request 4 debug3: mm_answer_sign debug3: mm_answer_sign: signature 0x809c590(271) debug3: mm_request_send entering: type 5 debug2: monitor_read: 4 used once, disabling now debug3: mm_request_receive entering debug1: SSH2_MSG_KEX_DH_GEX_REPLY sent debug2: kex_derive_keys debug2: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug2: set_newkeys: mode 0 debug1: SSH2_MSG_NEWKEYS received debug1: KEX done debug1: userauth-request for user chroot-test service ssh-connection method nonedebug1: attempt 0 failures 0 debug3: mm_getpwnamallow entering debug3: mm_request_send entering: type 6 debug3: mm_getpwnamallow: waiting for MONITOR_ANS_PWNAM debug3: mm_request_receive_expect entering: type 7 debug3: mm_request_receive entering debug3: monitor_read: checking request 6 debug3: mm_answer_pwnamallow debug3: Normalising mapped IPv4 in IPv6 address debug3: Trying to reverse map address xx.xx.xx.xx. debug2: parse_server_config: config reprocess config len 182 debug3: auth_shadow_acctexpired: today 13513 sp_expire -1 days left -13514 debug3: account expiration disabled debug3: mm_answer_pwnamallow: sending MONITOR_ANS_PWNAM: 1 debug3: mm_request_send entering: type 7 debug2: monitor_read: 6 used once, disabling now debug3: mm_request_receive entering debug2: input_userauth_request: setting up authctxt for chroot-test debug3: mm_inform_authserv entering debug3: mm_request_send entering: type 3 debug2: input_userauth_request: try method none debug3: mm_auth_password entering debug3: mm_request_send entering: type 10 debug3: mm_auth_password: waiting for MONITOR_ANS_AUTHPASSWORD debug3: mm_request_receive_expect entering: type 11 debug3: mm_request_receive entering debug3: monitor_read: checking request 3 debug3: mm_answer_authserv: service=ssh-connection, style= debug2: monitor_read: 3 used once, disabling now debug3: mm_request_receive entering debug3: monitor_read: checking request 10 debug3: mm_answer_authpassword: sending result 0 debug3: mm_request_send entering: type 11 Failed none for chroot-test from xx.xx.xx.xx port 51742 ssh2 debug3: mm_request_receive entering debug3: mm_auth_password: user not authenticated debug1: userauth-request for user chroot-test service ssh-connection method publickey debug1: attempt 1 failures 1 debug2: input_userauth_request: try method publickey debug1: test whether pkalg/pkblob are acceptable debug3: mm_key_allowed entering debug3: mm_request_send entering: type 20 debug3: mm_key_allowed: waiting for MONITOR_ANS_KEYALLOWED debug3: mm_request_receive_expect entering: type 21 debug3: mm_request_receive entering debug3: monitor_read: checking request 20 debug3: mm_answer_keyallowed entering debug3: mm_answer_keyallowed: key_from_blob: 0x809de48 debug1: temporarily_use_uid: 1002/1002 (e=0/0) debug1: trying public key file /home/chroot-test/.//.ssh/authorized_keys debug1: restore_uid: 0/0 debug1: temporarily_use_uid: 1002/1002 (e=0/0) debug1: trying public key file /home/chroot-test/.//.ssh/authorized_keys2 debug1: restore_uid: 0/0 Failed publickey for chroot-test from xx.xx.xx.xx port 51742 ssh2 debug3: mm_answer_keyallowed: key 0x809de48 is disallowed debug3: mm_request_send entering: type 21 debug3: mm_request_receive entering debug2: userauth_pubkey: authenticated 0 pkalg ssh-dss debug1: userauth-request for user chroot-test service ssh-connection method keyboard-interactive debug1: attempt 2 failures 2 debug2: input_userauth_request: try method keyboard-interactive debug1: keyboard-interactive devs debug1: auth2_challenge: user=chroot-test devs= debug1: kbdint_alloc: devices '' debug2: auth2_challenge_start: devices debug1: userauth-request for user chroot-test service ssh-connection method password debug1: attempt 3 failures 3 debug2: input_userauth_request: try method password debug3: mm_auth_password entering debug3: mm_request_send entering: type 10 debug3: mm_auth_password: waiting for MONITOR_ANS_AUTHPASSWORD debug3: mm_request_receive_expect entering: type 11 debug3: mm_request_receive entering debug3: monitor_read: checking request 10 debug3: auth_shadow_pwexpired: today 13513 sp_lstchg 13513 sp_max 99999 debug3: mm_answer_authpassword: sending result 1 debug3: mm_request_send entering: type 11 Accepted password for chroot-test from xx.xx.xx.xx port 51742 ssh2 debug1: monitor_child_preauth: chroot-test has been authenticated by privileged process debug3: mm_get_keystate: Waiting for new keys debug3: mm_request_receive_expect entering: type 24 debug3: mm_request_receive entering debug3: mm_auth_password: user authenticated debug3: mm_send_keystate: Sending new keys: 0x809a6b8 0x809a4e0 debug3: mm_newkeys_to_blob: converting 0x809a6b8 debug3: mm_newkeys_to_blob: converting 0x809a4e0 debug3: mm_send_keystate: New keys have been sent debug3: mm_send_keystate: Sending compression state debug3: mm_request_send entering: type 24 debug3: mm_send_keystate: Finished sending state debug3: mm_newkeys_from_blob: 0x80a4be8(118) debug2: mac_init: found hmac-md5 debug3: mm_get_keystate: Waiting for second key debug3: mm_newkeys_from_blob: 0x80a4be8(118) debug2: mac_init: found hmac-md5 debug3: mm_get_keystate: Getting compression state debug3: mm_get_keystate: Getting Network I/O buffers debug3: mm_share_sync: Share sync debug3: mm_share_sync: Share sync end debug1: permanently_set_uid: 1002/1002 debug2: set_newkeys: mode 0 debug2: set_newkeys: mode 1 debug1: Entering interactive session for SSH2. debug2: fd 5 setting O_NONBLOCK debug2: fd 6 setting O_NONBLOCK debug1: server_init_dispatch_20 debug2: User child is on pid 19300 debug3: mm_request_receive entering debug1: server_input_channel_open: ctype session rchan 0 win 131072 max 32768 debug1: input_session_request debug1: channel 0: new [server-session] debug1: session_new: init debug1: session_new: session 0 debug1: session_open: channel 0 debug1: session_open: session 0: link with channel 0 debug1: server_input_channel_open: confirm session debug1: server_input_channel_req: channel 0 request env reply 0 debug1: session_by_channel: session 0 channel 0 debug1: session_input_channel_req: session 0 req env debug2: Ignoring env request LANG: disallowed name debug1: server_input_channel_req: channel 0 request subsystem reply 1 debug1: session_by_channel: session 0 channel 0 debug1: session_input_channel_req: session 0 req subsystem subsystem request for sftp debug1: subsystem: exec() /usr/local/openssh-chroot/libexec/sftp-server debug2: fd 3 setting TCP_NODELAY debug2: fd 8 setting O_NONBLOCK debug3: fd 8 is O_NONBLOCK debug2: channel 0: read<=0 rfd 8 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: notify_done: reading debug1: Received SIGCHLD. debug1: session_by_pid: pid 19301 debug1: session_exit_message: session 0 channel 0 pid 19301 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: output open -> closed debug2: channel 0: send close debug3: channel 0: will not send data after close debug3: channel 0: will not send data after close debug2: channel 0: rcvd close debug3: channel 0: will not send data after close debug2: channel 0: is dead debug2: channel 0: gc: notify user debug1: session_by_channel: session 0 channel 0 debug1: session_close_by_channel: channel 0 child 0 debug1: session_close: session 0 pid 0 debug2: channel 0: gc: user detached debug2: channel 0: is dead debug2: channel 0: garbage collecting debug1: channel 0: free: server-session, nchannels 1 debug3: channel 0: status: The following connections are open: #0 server-session (t4 r0 i3/0 o3/0 fd 8/8 cfd -1) debug3: channel 0: close_fds r 8 w 8 e -1 c -1 Connection closed by xx.xx.xx.xx debug1: do_cleanup Closing connection to xx.xx.xx.xx debug3: mm_request_send entering: type 58 debug3: monitor_read: checking request 58 debug3: mm_answer_term: tearing down sessions root@host1:/home/chroot-test# -- Cole Tuininga http://www.tuininga.org/ |