Koneksi diatur ulang oleh rekan menggunakan sshfs

32

Saya menggunakan mount sekering / sshfs yang berfungsi dengan baik sejauh ini. Sekarang saya harus menginstal ulang sistem server dan tiba-tiba mendapatkan read: Connection reset by peerkesalahan klasik . Saya menggunakan otentikasi kunci publik dan menyalin kunci saya ke sistem yang baru diinstal. Login ssh normal berfungsi dengan baik. Saya mengubah log untuk debug tetapi sayangnya ini tidak memberi saya informasi yang berguna:

sshd[2077]: debug1: Forked child 2198.
sshd[2198]: Set /proc/self/oom_score_adj to 0
sshd[2198]: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
sshd[2198]: debug1: inetd sockets after dupping: 3, 3
sshd[2198]: Connection from 192.168.1.6 port 47991
sshd[2198]: debug1: Client protocol version 2.0; client software version OpenSSH_6.1p1 Debian-4
sshd[2198]: debug1: match: OpenSSH_6.1p1 Debian-4 pat OpenSSH*
sshd[2198]: debug1: Enabling compatibility mode for protocol 2.0
sshd[2198]: debug1: Local version string SSH-2.0-OpenSSH_6.1p1 Debian-4
sshd[2198]: debug1: permanently_set_uid: 103/65534 [preauth]
sshd[2198]: debug1: list_hostkey_types: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256 [preauth]
sshd[2198]: debug1: SSH2_MSG_KEXINIT sent [preauth]
sshd[2198]: debug1: SSH2_MSG_KEXINIT received [preauth]
sshd[2198]: debug1: kex: client->server aes128-ctr hmac-md5 none [preauth]
sshd[2198]: debug1: kex: server->client aes128-ctr hmac-md5 none [preauth]
sshd[2198]: debug1: expecting SSH2_MSG_KEX_ECDH_INIT [preauth]
sshd[2198]: debug1: SSH2_MSG_NEWKEYS sent [preauth]
sshd[2198]: debug1: expecting SSH2_MSG_NEWKEYS [preauth]
sshd[2198]: Connection closed by 192.168.1.6 [preauth]
sshd[2198]: debug1: do_cleanup [preauth]
sshd[2198]: debug1: monitor_read_log: child log fd closed
sshd[2198]: debug1: do_cleanup
sshd[2198]: debug1: Killing privsep child 2199

Adakah yang tahu apa yang saya lewatkan di sini?

MEMPERBARUI

Dengan auth.logdebug level 3:

sshd[2455]: debug3: fd 5 is not O_NONBLOCK
sshd[2455]: debug1: Forked child 2456.
sshd[2455]: debug3: send_rexec_state: entering fd = 8 config len 751
sshd[2455]: debug3: ssh_msg_send: type 0
sshd[2455]: debug3: send_rexec_state: done
sshd[2456]: debug3: oom_adjust_restore
sshd[2456]: Set /proc/self/oom_score_adj to 0
sshd[2456]: debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8
sshd[2456]: debug1: inetd sockets after dupping: 3, 3
sshd[2456]: Connection from 192.168.1.6 port 50037
sshd[2456]: debug1: Client protocol version 2.0; client software version OpenSSH_6.1p1 Debian-4
sshd[2456]: debug1: match: OpenSSH_6.1p1 Debian-4 pat OpenSSH*
sshd[2456]: debug1: Enabling compatibility mode for protocol 2.0
sshd[2456]: debug1: Local version string SSH-2.0-OpenSSH_6.1p1 Debian-4
sshd[2456]: debug2: fd 3 setting O_NONBLOCK
sshd[2456]: debug2: Network child is on pid 2457
sshd[2456]: debug3: preauth child monitor started
sshd[2456]: debug3: privsep user:group 103:65534 [preauth]
sshd[2456]: debug1: permanently_set_uid: 103/65534 [preauth]
sshd[2456]: debug1: list_hostkey_types: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256 [preauth]
sshd[2456]: debug1: SSH2_MSG_KEXINIT sent [preauth]
sshd[2456]: debug1: SSH2_MSG_KEXINIT received [preauth]
sshd[2456]: debug2: kex_parse_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: ssh-rsa,ssh-dss,ecdsa-sha2-nistp256 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] [preauth]
sshd[2456]: debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] [preauth]
sshd[2456]: debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: none,[email protected] [preauth]
sshd[2456]: debug2: kex_parse_kexinit: none,[email protected] [preauth]
sshd[2456]: debug2: kex_parse_kexinit:  [preauth]
sshd[2456]: debug2: kex_parse_kexinit:  [preauth]
sshd[2456]: debug2: kex_parse_kexinit: first_kex_follows 0  [preauth]
sshd[2456]: debug2: kex_parse_kexinit: reserved 0  [preauth]
sshd[2456]: debug2: kex_parse_kexinit: ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected],[email protected],[email protected],ssh-rsa,ssh-dss [preauth]
sshd[2456]: debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] [preauth]
sshd[2456]: debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected] [preauth]
sshd[2456]: debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,[email protected],hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: none,[email protected],zlib [preauth]
sshd[2456]: debug2: kex_parse_kexinit: none,[email protected],zlib [preauth]
sshd[2456]: debug2: kex_parse_kexinit:  [preauth]
sshd[2456]: debug2: kex_parse_kexinit:  [preauth]
sshd[2456]: debug2: kex_parse_kexinit: first_kex_follows 0  [preauth]
sshd[2456]: debug2: kex_parse_kexinit: reserved 0  [preauth]
sshd[2456]: debug2: mac_setup: found hmac-md5 [preauth]
sshd[2456]: debug1: kex: client->server aes128-ctr hmac-md5 none [preauth]
sshd[2456]: debug2: mac_setup: found hmac-md5 [preauth]
sshd[2456]: debug1: kex: server->client aes128-ctr hmac-md5 none [preauth]
sshd[2456]: debug1: expecting SSH2_MSG_KEX_ECDH_INIT [preauth]
sshd[2456]: debug3: mm_key_sign entering [preauth]
sshd[2456]: debug3: mm_request_send entering: type 5 [preauth]
sshd[2456]: debug3: mm_key_sign: waiting for MONITOR_ANS_SIGN [preauth]
sshd[2456]: debug3: mm_request_receive_expect entering: type 6 [preauth]
sshd[2456]: debug3: mm_request_receive entering [preauth]
sshd[2456]: debug3: mm_request_receive entering
sshd[2456]: debug3: monitor_read: checking request 5
sshd[2456]: debug3: mm_answer_sign
sshd[2456]: debug3: mm_answer_sign: signature 0x7f9b687c7680(100)
sshd[2456]: debug3: mm_request_send entering: type 6
sshd[2456]: debug2: monitor_read: 5 used once, disabling now
sshd[2456]: debug2: kex_derive_keys [preauth]
sshd[2456]: debug2: set_newkeys: mode 1 [preauth]
sshd[2456]: debug1: SSH2_MSG_NEWKEYS sent [preauth]
sshd[2456]: debug1: expecting SSH2_MSG_NEWKEYS [preauth]
sshd[2456]: Connection closed by 192.168.1.6 [preauth]
sshd[2456]: debug1: do_cleanup [preauth]
sshd[2456]: debug3: PAM: sshpam_thread_cleanup entering [preauth]
sshd[2456]: debug1: monitor_read_log: child log fd closed
sshd[2456]: debug3: mm_request_receive entering
sshd[2456]: debug1: do_cleanup
sshd[2456]: debug3: PAM: sshpam_thread_cleanup entering
sshd[2456]: debug1: Killing privsep child 2457

MEMPERBARUI

Saya mencoba manual sshfsmount dan saya juga mendapatkannya read: Connection reset by peer. Saya kemudian menambahkan opsi debug dan juga mendapat Permission denied (publickey).. Ini aneh karena kunci publik sudah ada dan berfungsi dengan baik jika tidak. Saya juga menggunakan pengguna saya untuk koneksi ssh dan secara manual menentukan file kunci pribadi. Mungkinkah ini masalah dengan akun root karena tidak dapat mengakses kunci publik yang benar di server di suatu tempat? Saya sedang mengeksekusi

sudo sshfs myuser@myserver:/mnt/foo /mnt/foo -o IdentityFile=/home/myuser/.ssh/id_rsa

dan bagian log yang relevan adalah

debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/myuser/.ssh/id_rsa
debug1: Authentications that can continue: publickey
debug1: No more authentication methods to try.
Permission denied (publickey).
read: Connection reset by peer
André Stannek
sumber
1
Outputnya terlihat persis seperti dari sesi ssh yang menolak untuk terhubung karena ketidakcocokan sidik jari kunci server (atau kunci yang tidak dikenal). Apakah sftpke server bekerja dengan benar?
peterph
Saya mencoba sftp dengan Nautilus ( Connect to Server...opsi) dan Filezilla. Ini bekerja dengan baik. Meskipun Filezilla bertanya kepada saya tentang kunci host yang tidak dikenal.
André Stannek
Coba sftplangsung - itulah yang digunakan SSHFS.
peterph
4
Terlihat sama bagi saya. Sudahkah Anda mencoba mendapatkan info debug dari klien? sshfs -odebug,sshfs_debug,loglevel=debug ...bisa melakukan trik (diambil dari sourceforge.net/apps/mediawiki/fuse/index.php?title=SshfsFaq ).
peterph
1
@ Peterph sudah mendapatkan ide itu ;-) Lihat pembaruan kedua saya. Saya baru saja menghapus parameter debug pada perintah yang diposting di sini, tetapi saya menjalankannya bersama mereka.
André Stannek

Jawaban:

21

Saya menggunakan -F /path/to/configopsi. Jawabannya ada di file konfigurasi saya di tempat saya

IdentityFile ~/.ssh/id_rsa

yang tidak berhasil Diperlukan jalur absolut:

IdentityFile /home/user/.ssh/id_rsa
Sanchke Dellowar
sumber
man ssh-configsecara eksplisit memungkinkan tilde untukIdentityFile
CharlesB
4
@ Charles B Saya telah mengujinya dua arah dan saya jamin jawaban saya valid. Dan saya melihat apa yang Anda rujuk di halaman manual. Mungkin itu bug saat menjalankan dengan sudo? (karena saya)
Sanchke Dellowar
7
tentu, jika Anda menjalankan sshfs dengan sudo, tilde adalah rumah bagi pengguna root. maka Anda perlu menentukan jalur absolut.
CharlesB
1
Bahkan jika Anda menggunakan path absolut dalam ~/.ssh/configfile Anda , menjalankan sudo sshfssecara default akan membaca /root/.ssh/configfile root (jika ada). Anda harus melewati jalur eksplisit ke file konfigurasi Anda melalui -F.
Dan Dascalescu
14

Setelah banyak mencoba ternyata pengguna klien saya tidak ada dalam fusegrup. Setelah saya menambahkannya dengan sudo usermod -a -G fuse myusermount berfungsi dengan baik lagi. Jangan tanya saya bagaimana ini bisa berfungsi sebelum menginstal ulang server. Terima kasih atas semua bantuan Anda!

André Stannek
sumber
2
apakah ini pengguna di sistem file lokal atau jarak jauh?
Woodrow Barlow
1
@ WoodrowBarlow jujur, saya tidak tahu lagi: D Tebakan terbaik saya adalah lokal, karena ini adalah tempat Anda menggunakan sekering.
André Stannek
ataugpasswd --add USER fuse
deceleratedcaviar
Dalam kasus saya, saya hanya perlu nomor port. Ini ditambahkan dengan -popsi.
Paradox
11

Karena pesan kesalahan ini adalah pesan default ketika koneksi ssh gagal, jawaban paling umum (per @peterph comment) adalah untuk menyelidiki menggunakan setidaknya -odebug:

sshfs -odebug,sshfs_debug,loglevel=debug ...

sebagai contoh

sshfs -odebug,sshfs_debug,loglevel=debug -o Ciphers=arcfour -o Compression=no -o allow_root -o transform_symlinks localhost:/ /mnt/your_mount_point

Seperti dikatakan di tempat lain, penyebab umum termasuk hilang allow_otherdi fuse.confatau hilang fusekeanggotaan kelompok (meskipun yang mungkin tidak diperlukan lagi pada Ubuntu 18.04?)

Dalam kasus saya ini dicetak:

SSHFS version 2.8 FUSE library version: 2.9.7 nullpath_ok: 0 nopath: 0 utime_omit_ok: 0 executing <ssh> <-x> <-a> <-oClearAllForwardings=yes> <-ologlevel=debug> <-oIdentityFile=~/.ssh/id_rsa> <-oCiphers=arcfour> <-oCompression=no> <-2> <localhost> <-s> <sftp> command-line line 0: Bad SSH2 cipher spec 'arcfour'. read: Connection reset by peer

... menunjuk ke opsi Cipher yang tidak didukung (bekerja pada fedora tetapi tidak ubuntu)

eddygeek
sumber
Menggunakan -o debug, saya mendapat baris perintah 0: Bad SSH2 cipher spec 'arcfour'.
Salathiel Genèse
8

Saya memiliki masalah yang sama hari ini. sshkoneksi OK, sshfstidak. Server SSH saya adalah Qnap NAS (TS-228).

Masalahnya diperbaiki dengan mengaktifkan SFTP pada perangkat NAS.

Pengaturan tambahan muncul di sshd_config:

Subsystem sftp /usr/libexec/sftp-server
Geom
sumber
1
Solusi itu tidak berhasil untuk saya. Jadi saya menghargai sesuatu yang lain untuk dicoba.
landak gila
Mengaktifkan SFTP pada Synology NAS saya juga menyelesaikan kesalahan untuk saya. TETAPI konten yang ditampilkan dalam folder yang dipasang tidak sama dengan ketika terhubung langsung melalui ssh. Folder hilang dan root tidak dapat diakses. Gelandangan.
Heinrich Ulbricht
5

Saya menemukan masalah saya, yang mirip, ada hubungannya dengan file konfigurasi sekering di:

/etc/fuse.conf

Saya harus tidak berkomentar:

user_allow_other
cennings
sumber
5

Untuk berjaga-jaga seandainya seseorang menemukan thread ini: Saya memiliki read: Connection reset by peerkesalahan ini karena nama host tidak dapat diatasi (saya tidak menggunakan host yang sepenuhnya memenuhi syarat). Menggunakan nama host yang tepat memecahkan masalah - pesan kesalahan hanya benar-benar menyesatkan kemudian.

Tes yang bagus adalah ssh ke mesin sebelum menjalankan perintah sshfs, jika itu bahkan tidak berhasil sshfs tidak akan berfungsi baik.

Bob Lauer
sumber
sshfs server-ssh-alias: / some / dir / mnt tidak bekerja untuk saya, tetapi sshfs real.servername.org:/some/dir / mnt memang bekerja untuk saya. (dikombinasikan dengan user_allow_other)
Brian C.
2

Saya mendapatkan kesalahan ini dan mencoba metode di atas dan gagal membuatnya berfungsi.

Masalahnya adalah server tidak menerima ssh di port 22. Saya menggunakan:

$sshfs -p 2222 user@server:/path/to/folder ~/local/path

dan itu memecahkan masalah.

Arashr
sumber
1
Tolong jangan downvote tanpa mengatakan alasannya. Ini hal yang masuk akal untuk diperiksa.
landak gila
2

Kesalahan saya adalah di sisi server. Subsistem sftp untuk sshd tampaknya default untuk tidak tersedia pada centos 7.6.xx yang lebih baru. diperbaiki dengan menghapus "#" dari depan berikut ini di / etc / ssh / sshd_config

Subsystem sftp /usr/libexec/openssh/sftp-server

terima kasih kepada eddygeek untuk resep -odebug untuk membantu menemukan masalah ini. Sama seperti GEOM di atas tetapi tidak khusus untuk Qnap.

J.Bravo
sumber
2

Mendapat kesalahan yang sama saat menjalankan sudo sshfs [...] myhost: /mnt/myhost, di mana myhostdidefinisikan dalam ~/.ssh/configfile saya .

Masalahnya adalah menjalankan sudo sshfstidak mencari di direktori home saya ~/.ssh/config, tetapi di roots. Solusinya adalah mengirimkan file konfigurasi secara eksplisit melalui -F:

sudo sshfs -F /home/dandv/.ssh/config [...] myhost: /mnt/myhost
Dan Dascalescu
sumber
1

Saya menghapus sidik jari host dari /home/user/.ssh/known_hosts (sebenarnya menghapus seluruh file) dan memperbaikinya ... karena sidik jari telah berubah. menggunakan ssh untuk terhubung ke host memberi alasan yang jelas mengapa tidak terhubung.

mdxe
sumber
1

Bagi mereka yang mencari solusi yang sangat sederhana: Setelah menjalankan sshfs dalam mode debug, saya menemukan bahwa koneksi saya rusak.

Aktifkan mode verbose dengan sakelar:

-o debug
sandoval31
sumber
1

Saya memiliki masalah yang sama, dan ketika saya memeriksa konfigurasi jaringan, sistem beberapa kehilangan alamat gateway. Jadi saya menjalankan perintah di bawah ini

rute tambahkan default gw 192.169.0.254

dan kemudian reboot sistem.

Masalah teratasi setelah reboot.

Perasaan
sumber
2
Anda mendapat "koneksi reset by peer" dengan gateway yang buruk?!?
Jeff Schaller
1

Dalam kasus saya itu adalah antarmuka server tidak menjadi setelah lama di startup. Server terhubung ke port switch Cisco dengan mode trunk. Karena setiap port trunk akan melakukan berbagai pemeriksaan sebelum benar-benar menjadi UP (biasanya lebih dari 30 detik), ini telah mengakibatkan pesan kesalahan atur ulang koneksi di atas.

Solusi saya adalah mengubah port switch ke mode akses spanning-tree portfast, karena di lingkungan saya mode trunk tidak diperlukan untuk server ini.

Saya juga mengetahui tentang masalah ini menggunakan parameter debugging untuk sshfs.

afardana
sumber