scp “koneksi terputus” tetapi ssh berfungsi dengan baik

10

Server yang bisa saya ssh menjadi denda sudah mulai menolak untuk scp.

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

Dengan scp -v -vsaya dapat melihat koneksi berhasil dan transfer tampaknya berhasil, tetapi tidak ada file yang muncul di sisi lain.

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

Ini adalah mesin CentOS 5.9.

Hal-hal yang sudah saya periksa ...

  • Saya memiliki izin untuk menulis ke direktori itu.
  • Pengguna memiliki shell yang masuk akal (/ bin / bash).
  • Saya mencoba memindahkan saya ~/.ssh/configkeluar dari jalan.
  • scp'ing ke mesin itu dari orang lain dengan sistem operasi yang sama sekali berbeda juga gagal.
  • Disk tidak penuh.
  • Mulai kembali sshd.

/ var / log / secure mengandung ...

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

Apa yang mungkin saya periksa selanjutnya?

Schwern
sumber
2
Bukan kesalahan yang saya harapkan, tetapi untuk berjaga-jaga, apakah Anda ~/.bashrcatau ~/.profileatau /etc/bash.bashrcatau /etc/profilemencetak sesuatu untuk STDOUT? bugzilla.redhat.com/show_bug.cgi?id=20527 . Dan saya menganggap Anda menggunakan Linux?
terdon
Nggak. Saya hanya mendapatkan yang biasa Last login: Thu Apr 4 10:15:28 2013 from 1.2.3.4.
Schwern
Adakah yang ada di salah satu sistem log pada host target?
Flup
@Flup Terlihat normal. Saya memposting apa yang muncul di log ketika saya terhubung.
Schwern
Bisakah Anda mulai strace -f -o /tmp/sshd.strace -p [pid of sshd]di server, coba lagi, lalu posting apa pun dari file yang terlihat relevan?
Flup

Jawaban:

1

Punya masalah yang sama.

Jika Anda melakukan instalasi minimal Centos, itu hanya menginstal opensshdan openssh-serverpaket tetapi tidak openssh-clients. sudo yum install openssh-clientsakan memperbaiki masalah Anda.

qux
sumber
Saya tidak memiliki akses ke mesin itu lagi, tapi itu sepertinya jawaban yang mungkin.
Schwern
4

scpbekerja dengan membuat sshkoneksi ke host jarak jauh, kemudian meluncurkan salinan scpprogram lain pada host itu. Dua instance scp berkomunikasi melalui koneksi ssh untuk melakukan transfer file.

"koneksi hilang" dicetak oleh scpprogram lokal ketika koneksi ssh turun sebelum waktunya. Alasan umum untuk itu adalah scpprogram pada host jarak jauh gagal untuk memulai atau keluar sebelum waktunya. Ini bisa terjadi karena program scp tidak ada pada host jarak jauh, atau itu tidak ada di PATH perintah Anda, atau tidak ditandai dieksekusi, atau macet setelah memulai, atau sesuatu di sepanjang baris itu.

Kenster
sumber
0

Kami baru-baru ini memiliki masalah ini di salah satu sistem kami.

Kami dapat ssh dengan tepat ke server host, tetapi ternyata kami tidak dapat ssh dari server kembali ke mesin. Ini adalah tempat yang baik untuk menyelidiki, jika Anda tidak dapat melakukan ini maka Anda tidak akan dapat menggunakan SCP.

Dalam kasus kami, entah bagaimana (mungkin instalasi yang gagal) telah menggantikan file binary ssh kami dengan file kosong 0 byte. Setiap kali "ssh" dieksekusi, tidak ada yang terjadi.

Dengan menginstal ulang openssh-klien, kami memperbaiki binari dan scp mulai bekerja.

yum reinstall openssh-clients

Ultimasi
sumber