scp“연결이 끊어졌지만 ssh가 제대로 작동합니다.


10

잘 ssh 할 수있는 서버가 scp를 거부하기 시작했습니다.

$ scp ~/tmp/foo user@some.example.com:~/tmp/
lost connection

함께 scp -v -v내가 볼 수있는 연결이 성공하고 전송이 성공한 것처럼되지만 파일은 다른 측면에 나타납니다.

OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011
debug1: Reading configuration data /Users/schwern/.ssh/config
debug1: /Users/schwern/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to testcurrent01.dev.liquidweb.com [10.30.152.254] port 22.
debug1: Connection established.
debug1: identity file /Users/schwern/.ssh/id_rsa type -1
debug1: identity file /Users/schwern/.ssh/id_rsa-cert type -1
debug1: identity file /Users/schwern/.ssh/id_dsa type -1
debug1: identity file /Users/schwern/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH_4*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.9
debug2: fd 3 setting O_NONBLOCK
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
...lots of authentication details...
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (publickey).
Authenticated to user@some.example.com ([1.2.3.4]:22).
debug2: fd 5 setting O_NONBLOCK
debug2: fd 6 setting O_NONBLOCK
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Entering interactive session.
debug2: callback start
debug2: client_session2_setup: id 0
debug2: fd 3 setting TCP_NODELAY
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
debug2: channel 0: request env confirm 0
debug1: Sending command: scp -v -t -- ~/tmp/
debug2: channel 0: request exec confirm 1
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug2: channel 0: rcvd adjust 2097152
debug2: channel_input_status_confirm: type 99 id 0
debug2: exec request accepted on channel 0
debug2: channel 0: rcvd eof
debug2: channel 0: output open -> drain
debug2: channel 0: obuf empty
debug2: channel 0: close_write
debug2: channel 0: output drain -> closed
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug2: channel 0: rcvd close
debug2: channel 0: close_read
debug2: channel 0: input open -> closed
debug2: channel 0: almost dead
debug2: channel 0: gc: notify user
debug2: channel 0: gc: user detached
debug2: channel 0: send close
debug2: channel 0: is dead
debug2: channel 0: garbage collecting
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 4576, received 2520 bytes, in 0.0 seconds
Bytes per second: sent 167737.0, received 92372.6
debug1: Exit status 0
debug1: compress outgoing: raw data 135, compressed 121, factor 0.90
debug1: compress incoming: raw data 66, compressed 52, factor 0.79
lost connection

CentOS 5.9 시스템입니다.

내가 확인한 것들 ...

  • 해당 디렉토리에 쓸 수있는 권한이 있습니다.
  • 사용자에게 합리적인 쉘 (/ bin / bash)이 있습니다.
  • 나는 ~/.ssh/config길을 벗어나 려고 노력했다 .
  • 완전히 다른 운영 체제를 사용하는 다른 시스템에서 해당 시스템으로의 scp 's도 실패합니다.
  • 디스크가 꽉 차지 않았습니다.
  • sshd를 다시 시작합니다.

/ var / log / secure 포함 사항 ...

Apr  4 14:23:22 some sshd[12576]: Postponed publickey for user from 1.2.3.4 port 33581 ssh2
Apr  4 14:23:22 some sshd[12575]: Accepted publickey for user from 1.2.3.4 port 33581 ssh2
Apr  4 14:23:22 some sshd[12575]: pam_unix(sshd:session): session opened for user user by (uid=0)
Apr  4 14:23:22 some sshd[12575]: pam_unix(sshd:session): session closed for user user

다음에 무엇을 확인할 수 있습니까?


2
아니 오류가 나는 기대하지만, 단지의 경우, 어떻게 당신의 것 ~/.bashrc또는 ~/.profile또는 /etc/bash.bashrc또는 /etc/profileSTDOUT에 아무것도 인쇄? bugzilla.redhat.com/show_bug.cgi?id=20527 . 그리고 당신이 리눅스를 사용한다고 가정합니까?
terdon

아니. 나는 단지 평소를 얻는다 Last login: Thu Apr 4 10:15:28 2013 from 1.2.3.4.
Schwern

대상 호스트의 시스템 로그에 아무것도 있습니까?
Flup

@Flup 정상적으로 보입니다. 연결할 때 로그에 표시되는 내용을 게시했습니다.
Schwern

시작 할 수 strace -f -o /tmp/sshd.strace -p [pid of sshd]서버에 다시 시도 후 관련 보이는 파일을 게시?
Flup

답변:


1

같은 문제가 있었다.

Centos를 최소 설치 한 경우 opensshopenssh-server패키지 만 설치 하고 패키지는 설치 하지 않습니다 openssh-clients. sudo yum install openssh-clients문제를 해결합니다.


나는 그 기계에 더 이상 접근 할 수 없지만, 아마도 대답이 될 것 같다.
Schwern

4

scpssh원격 호스트에 연결 한 다음 scp해당 호스트 에서 프로그램 의 다른 사본을 시작하여 작동 합니다. 두 scp 인스턴스는 ssh 연결을 통해 통신하여 파일 전송을 수행합니다.

scpssh 연결이 너무 일찍 끊어지면 로컬 프로그램 에서 "lost connection"을 인쇄합니다 . 일반적인 원인 scp은 원격 호스트 의 프로그램이 시작되지 않았거나 조기에 종료 되었기 때문입니다. scp 프로그램이 원격 호스트에 없거나 명령 PATH에 없거나 실행 파일로 표시되지 않았거나 시작 후 충돌했거나 해당 행을 따라 무언가가 발생했기 때문일 수 있습니다.


0

최근 우리 시스템 중 하나에서이 문제가 발생했습니다.

우리는 호스트 서버로 적절히 ssh 할 수 있었지만 서버에서 머신으로 다시 ssh 할 수 없다는 것을 발견했습니다. 조사하기 좋은 곳입니다. 이렇게 할 수 없으면 SCP를 사용할 수 없습니다.

우리의 경우 어떻게 든 (아마도 botched 설치) ssh 바이너리 파일을 0 바이트 빈 파일로 대체했습니다. "ssh"가 실행될 때마다 아무 일도 일어나지 않았습니다.

openssh-clients를 다시 설치하여 바이너리를 수정하고 scp가 작동하기 시작했습니다.

yum reinstall openssh-clients

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.