scp “conexão perdida” mas o ssh funciona bem

9

Um servidor que eu posso ssh para multa começou a se recusar a scp.

$ scp ~/tmp/foo [email protected]:~/tmp/
lost connection

Com scp -v -v , vejo a conexão ser bem-sucedida e a transferência parece ter êxito, mas nenhum arquivo aparece do outro lado.

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 [email protected] ([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

É uma máquina do CentOS 5.9.

Coisas que eu verifiquei ...

  • Eu tenho permissão para escrever nesse diretório.
  • O usuário tem um shell sensato (/ bin / bash).
  • Tentei mover meu ~/.ssh/config para fora do caminho.
  • scp'ing para essa máquina de outros com sistemas operacionais completamente diferentes também falham.
  • O disco não está cheio.
  • Reiniciando o sshd.

/ var / log / secure contém ...

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

O que posso verificar em seguida?

    
por Schwern 04.04.2013 / 16:13

3 respostas

1

Tive o mesmo problema.

Se você fez uma instalação mínima do Centos, instale apenas os pacotes openssh e openssh-server , mas não o openssh-clients . sudo yum install openssh-clients corrigirá seu problema.

    
por 12.11.2014 / 21:41
4

scp funciona fazendo uma conexão ssh com o host remoto e, em seguida, iniciando outra cópia do programa scp nesse host. As duas instâncias scp se comunicam através da conexão ssh para executar a transferência de arquivos.

"conexão perdida" é impressa pelo programa scp local quando a conexão ssh cai prematuramente. A razão usual para isso é que o programa scp no host remoto falhou ao iniciar ou saiu prematuramente. Isso poderia ter acontecido porque o programa scp não existe no host remoto, ou não está em seu comando PATH, ou não está marcado como executável, ou travou após o início, ou algo assim.

    
por 12.11.2014 / 22:50
0

Recentemente, tivemos esse problema em um de nossos sistemas.

Poderíamos apropriadamente ssh no servidor host, mas descobrimos que não poderíamos ssh do servidor de volta para a máquina. Este é um bom lugar para investigar, se você não puder fazer isso, você não poderá usar o SCP.

No nosso caso, de alguma forma (talvez uma instalação fracassada) substituiu nossos arquivos binários ssh por arquivos vazios de 0 byte. Sempre que "ssh" foi executado, nada aconteceu.

Ao reinstalar o openssh-clients, nós corrigimos os binários e o scp começou a funcionar.

yum reinstall openssh-clients

    
por 13.03.2018 / 14:22

Tags