Ubuntu에서 SFTP를 다시 작동시키는 방법은 무엇입니까? 고쳐야 할까요, 아니면 다시 설치해야 할까요?

Ubuntu에서 SFTP를 다시 작동시키는 방법은 무엇입니까? 고쳐야 할까요, 아니면 다시 설치해야 할까요?

업데이트: 두 개 이상의 로그에서 출력이 추가되었습니다. 이제 마지막 20줄만 추적합니다. 바라보다 관련 라인.


6개월 동안 완벽하게 작동한 후 Ubuntu 컴퓨터에서 SFTP를 사용했습니다.갑자기 일을 멈췄다. 나는 그것을 구성하거나 설치한 적이 없으며 단지 작동했습니다.

  • Ubuntu 14.04.1 LTS, GNU bash, 버전 4.3.11(1)-릴리스(i686-pc-linux-gnu)

SFTP를 사용하는 유일한 방법은 서버를 Windows 시스템의 문자 드라이브로 매핑하는 것입니다.SFTP 네트워크 드라이브 무료. 위에 링크된 게시물에 자세하게 설명되어 있듯이, 에서도 작동하지 않는 것을 확인했습니다.네트워크 드라이브(SFTP Net Drive 경쟁업체) 및문서 지라. 하지만 저는 SFTP Net Drive만 사용해왔습니다.

중요한 것은 새 임시 계정을 만들었고할 수 있는SFTP가 작동하는데 이는 현재 계정의 Ubuntu 구성에 문제가 있음을 의미합니다.

내가 만든 유일한 사용자 정의는 별칭 및 별칭과 유사한 기능을 파일에 추가 .bashrc하고 몇 가지 새로운 명령을 추가하는 것 .inputrc(예:여기,여기,여기, 그리고여기. SFTP 관련 설정이 변경되면 이상한 사고입니다.

SFTP Net Drive를 다시 설치하고 두 컴퓨터를 모두 다시 시작했지만 여전히 아무것도 없습니다.

프롬프트를 따르십시오.이 스레드:

sftp 하위 시스템이 openssh-server 구성에 정의되어 있고 주석 처리되지 않았는지 확인합니다(일반적으로 구성 순서는 중요하지 않지만 마지막에).

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

이곳이 바로 그 곳입니다.

또한 하위 시스템의 파일이 존재하는지 확인하십시오.

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

내 결과:

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

파일에 읽기 및 실행 가능 플래그가 설정되어 있는지 확인하십시오.

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

권한은 완전히 동일합니다.

로그에서 오류 메시지를 확인하세요.

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

오후 9시 39분에 SFTP Net Drive를 이용하여 로그인을 시도했는데 로그가 나왔습니다.

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

이것이 무엇을 의미하는지 모르겠습니다. 내 계정의 비밀번호는 허용되지만 루트의 비밀번호는 허용되지 않습니다. 1Password에서 비밀번호를 복사하여 콘솔에 붙여넣었더니 제대로 작동했습니다. 그런 다음 SFTP 네트워크 드라이브에 붙여넣었지만 아무 것도 없습니다.

또한 로그 앞부분에서 "호스트 키를 로드할 수 없습니다"라는 오류를 발견했습니다.이 페이지하라고 해서 ssh-keygen -A그렇게 했어요. 이것이 어떤 차이를 가져오는지 이해가 되지 않습니다.


이것이 내가 해결해야 할 문제입니까? 아니면 SFTP를 다시 "다시 설치"해야 합니까? (애초에 설치한 적은 없지만)

답변1

텍스트가 콘솔에 출력되면 SFTP가 충돌하는 것으로 나타났습니다. 나는 내 에코를 추가했고 ~/.bashrc이로 인해 죽었습니다.

맨 위에 다음을 추가했습니다 .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

/etc/motd또한 에 설명된 대로 에코(로그인 소개 메시지로 사용하려고 함)를 로 옮겼습니다.이 답변


#bash의 Dualbus와 Ishikawa에게 감사드립니다.

관련 정보