0

Update: Added output from two more logs, and am now only tailing the last twenty lines...so you can see the relevant lines.


After six months of working perfectly, SFTP on my Ubuntu machine has suddenly stopped working. I never configured or installed it, it just worked.

  • Ubuntu 14.04.1 LTS, GNU bash, version 4.3.11(1)-release (i686-pc-linux-gnu)

The only way I use SFTP is to map my server as a lettered drive on my Windows machine, with SFTP Net Drive Free. As described in painful detail in the post linked above, I've also confirmed that it doesn't work in WebDrive (an SFTP Net Drive competitor) and FileZilla. I've only used SFTP Net Drive, though.

Importantly, I created a new temporary account, and I can SFTP with it, which implies that this is an Ubuntu configuration issue with my current account.

The only customization I've done is to add aliases and alias-like functions to the .bashrc file, and a couple new commands into .inputrc (like here, here, here, and here. If any SFTP-related settings were changed, it was a freak accident.

I've reinstalled SFTP Net Drive, restarted both computers, and still nothing works.

Following the tips in this thread:

Check that (usually at the end, although the order of the configs don't matter) the sftp subsystem is defined in the openssh-server config and not commented out.

cat /etc/ssh/sshd_config Subsystem sftp /usr/lib/openssh/sftp-server 

This is there exactly.

And also check that the file of the subsystem exists

file /usr/lib/openssh/sftp-server /usr/lib/openssh/sftp-server: ELF 32-bit 

My output:

file /usr/lib/openssh/sftp-server /usr/lib/openssh/sftp-server: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=469f88be752153898a1e5a4787e6145e6eb99bd3, stripped history -a 

check if the file has the read and executable flags set

ls -l /usr/lib/openssh/sftp-server -rwxr-xr-x 1 root root 63484 2009-10-22 22:36 /usr/lib/openssh/sftp-server 

The permissions are exactly the same.

check the logs for error messages

tail -20 /var/log/auth.log tail -20 /var/log/messages.log 

I attempted to login with SFTP Net Drive at 9:39 pm, and then output the logs.

auth.log:

sudo tail -20 /var/log/auth.log Jan 14 21:37:18 myservername sudo: pam_unix(sudo:session): session closed for user root Jan 14 21:38:27 myservername sshd[3068]: Invalid user admin from 123.45.67.891 Jan 14 21:38:27 myservername sshd[3068]: input_userauth_request: invalid user admin [preauth] Jan 14 21:38:27 myservername sshd[3068]: pam_unix(sshd:auth): check pass; user unknown Jan 14 21:38:27 myservername sshd[3068]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=li707-40.members.linode.com Jan 14 21:38:28 myservername sshd[3068]: Failed password for invalid user admin from 123.45.67.891 port 45702 ssh2 Jan 14 21:38:29 myservername sshd[3068]: Received disconnect from 123.45.67.891: 11: Bye Bye [preauth] Jan 14 21:38:40 myservername sshd[3071]: Accepted password for myusername from 173.61.202.27 port 54007 ssh2 Jan 14 21:38:40 myservername sshd[3071]: pam_unix(sshd:session): session opened for user myusername by (uid=0) Jan 14 21:38:43 myservername sshd[3071]: pam_unix(sshd:session): session closed for user myusername Jan 14 21:38:49 myservername sudo: myusername : TTY=pts/0 ; PWD=/home/myusername ; USER=root ; COMMAND=/usr/bin/tail -50 /var/log/syslog Jan 14 21:38:49 myservername sudo: pam_unix(sudo:session): session opened for user root by myusername(uid=0) Jan 14 21:38:49 myservername sudo: pam_unix(sudo:session): session closed for user root Jan 14 21:40:01 myservername CRON[3151]: pam_unix(cron:session): session opened for user smmsp by (uid=0) Jan 14 21:40:01 myservername CRON[3151]: pam_unix(cron:session): session closed for user smmsp Jan 14 21:41:00 myservername sudo: myusername : TTY=pts/0 ; PWD=/home/myusername ; USER=root ; COMMAND=/usr/bin/tail -20 /var/log/auth.log Jan 14 21:41:00 myservername sudo: pam_unix(sudo:session): session opened for user root by myusername(uid=0) Jan 14 21:41:00 myservername sudo: pam_unix(sudo:session): session closed for user root Jan 14 21:41:17 myservername sudo: myusername : TTY=pts/0 ; PWD=/home/myusername ; USER=root ; COMMAND=/usr/bin/tail -50 /var/log/auth.log Jan 14 21:41:17 myservername sudo: pam_unix(sudo:session): session opened for user root by myusername(uid=0) history -a 

sudo tail -20 /var/log/syslog:

sudo tail -20 /var/log/syslog Jan 14 17:56:39 myservername /usr/sbin/irqbalance: Balancing is ineffective on systems with a single cache domain. Shutting down Jan 14 17:56:43 myservername sm-mta[981]: starting daemon (8.14.4): SMTP+queueing@00:10:00 Jan 14 17:56:46 myservername ntpdate[465]: step time server 91.189.89.199 offset 1.521544 sec Jan 14 17:57:02 myservername ntpdate[1074]: adjust time server 91.189.89.199 offset 0.000019 sec Jan 14 17:57:59 myservername kernel: [ 83.690027] random: nonblocking pool is initialized Jan 14 18:00:01 myservername CRON[1183]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 18:17:01 myservername CRON[1438]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Jan 14 18:20:01 myservername CRON[1536]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 18:40:01 myservername CRON[1971]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 19:00:01 myservername CRON[2086]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 19:17:01 myservername CRON[2187]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Jan 14 19:20:01 myservername CRON[2204]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 19:40:01 myservername CRON[2317]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 20:00:01 myservername CRON[2432]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 20:17:01 myservername CRON[2531]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Jan 14 20:20:01 myservername CRON[2548]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 20:40:01 myservername CRON[2663]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 21:00:01 myservername CRON[2843]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) Jan 14 21:17:01 myservername CRON[2942]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly) Jan 14 21:20:01 myservername CRON[2959]: (smmsp) CMD (test -x /etc/init.d/sendmail && /usr/share/sendmail/sendmail cron-msp) history -a 

$ sudo tail -20 /var/log/messages.log

sudo tail -20 /var/log/messages.log tail: cannot open ‘/var/log/messages.log’ for reading: No such file or directory history -a 

I don't know what this means. Accepted password for my account, but not for root. I copy my password from 1Password, paste it into the console and it works. Then paste it into SFTP Net Drive and it doesn't.

I also noticed a "Could not load host key" error earlier in the log, and this page says to execute ssh-keygen -A, which I did. I don't understand if it made a difference.


Is this something I should try to fix? Or should I just "reinstall" SFTP again? (Although I never installed it to begin with.)

1 Answer 1

1

It turns out that SFTP crashes if any text is output to the console. I added an echo to my ~/.bashrc, which killed it.

I've added the following to the very top of .bashrc:

:<<COMMENT SFTP breaks if any thing is output to the shell, and it doesn't need anything in .bashrc anyway. Description of the following line of code: "If file descriptor 0, or 'the input' is connected to a terminal, which is true when you do: ssh yourhost but not when you do: ssh yourhost bash -s < script # here it's connected to 'script', a file" See - https://serverfault.com/questions/485487/use-bashrc-without-breaking-sftp - http://www.openssh.com/faq.html#2.9 COMMENT [ -t 0 ] || return 

In addition, I've moved the echo, which I intended as a login intro message, to /etc/motd, as described in this answer


Thanks to dualbus and ishikawa on #bash.

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.