sshfs를 사용하여 피어에 의한 연결 재설정


32

지금까지 잘 작동했던 퓨즈 / sshfs 마운트를 사용하고 있습니다. 이제 서버 시스템을 다시 설치하고 갑자기 클래식 read: Connection reset by peer오류가 발생했습니다. 공개 키 인증을 사용하고 있으며 키를 새로 설치된 시스템에 복사했습니다. 정상적인 ssh 로그인이 정상적으로 작동합니다. 로그를 디버그하도록 변경했지만 슬프게도 유용한 정보는 제공하지 않습니다.

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

아무도 내가 여기서 잃어버린 것을 알고 있습니까?

최신 정보

auth.log디버그 레벨 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,rijndael-cbc@lysator.liu.se [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,rijndael-cbc@lysator.liu.se [preauth]
sshd[2456]: debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: none,zlib@openssh.com [preauth]
sshd[2456]: debug2: kex_parse_kexinit: none,zlib@openssh.com [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: ecdsa-sha2-nistp256-cert-v01@openssh.com,ecdsa-sha2-nistp384-cert-v01@openssh.com,ecdsa-sha2-nistp521-cert-v01@openssh.com,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-rsa-cert-v01@openssh.com,ssh-dss-cert-v01@openssh.com,ssh-rsa-cert-v00@openssh.com,ssh-dss-cert-v00@openssh.com,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,rijndael-cbc@lysator.liu.se [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,rijndael-cbc@lysator.liu.se [preauth]
sshd[2456]: debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-sha2-256,hmac-sha2-512,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96 [preauth]
sshd[2456]: debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib [preauth]
sshd[2456]: debug2: kex_parse_kexinit: none,zlib@openssh.com,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

최신 정보

나는 수동 sshfs마운트를 시도하고 또한 얻을 read: Connection reset by peer. 그런 다음 디버깅 옵션을 추가하고도 얻었습니다 Permission denied (publickey).. 공개 키가 있고 그렇지 않으면 제대로 작동하기 때문에 이것은 이상합니다. 또한 사용자를 ssh 연결에 사용하고 개인 키 파일을 수동으로 지정합니다. 루트 계정이 서버의 올바른 공개 키에 액세스 할 수없는 문제 일 수 있습니까? 나는 실행 중이다

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

관련 로그 부분은

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

1
출력은 서버 키 지문 불일치 (또는 알 수없는 키)로 인해 연결을 거부하는 ssh 세션의 출력과 정확히 같습니다. 합니까 sftp제대로 서버 작업에?
peterph

나는 노틸러스 ( Connect to Server...옵션)와 Filezilla로 sftp를 시도했습니다 . 잘 작동합니다. Filezilla가 알려지지 않은 호스트 키에 대해 물었습니다.
André Stannek

sftp직접 시도하십시오 -이것이 SSHFS가 사용하는 것입니다.
peterph 2016 년

4
나에게도 똑같이 보입니다. 클라이언트로부터 디버깅 정보를 얻으려고 했습니까? sshfs -odebug,sshfs_debug,loglevel=debug ...트릭을 수행 할 수 있습니다 ( sourceforge.net/apps/mediawiki/fuse/index.php?title=SshfsFaq ).
peterph 2016 년

1
@ peterph는 이미 그 아이디어를 가지고 ;-) 내 두 번째 업데이트를 참조하십시오. 여기에 게시 된 명령에서 디버그 매개 변수를 생략했지만 함께 실행했습니다.
André Stannek

답변:


21

나는 -F /path/to/config옵션 을 사용하고 있었다 . 대답은 내가 가진 구성 파일에있었습니다.

IdentityFile ~/.ssh/id_rsa

작동하지 않았습니다. 절대 경로가 필요합니다 :

IdentityFile /home/user/.ssh/id_rsa

man ssh-config명시 적으로 위해 물결을 수 있습니다IdentityFile
CharlesB

4
@CharlesB 나는 그것을 두 가지 방법으로 테스트했으며 내 대답이 유효하다는 것을 확신합니다. 그리고 나는 당신이 맨 페이지에서 무엇을 참조하는지 봅니다. 아마도 sudo로 실행할 때 버그입니까? (I am 때문에)
Sanchke Dellowar

7
물론 sudo와 함께 sshfs를 실행하는 경우 틸드는 루트 사용자의 홈입니다. 그런 다음 절대 경로를 지정해야합니다.
CharlesB

1
~/.ssh/config파일 에서 절대 경로를 사용하더라도 sudo sshfs기본적으로 루트의 /root/.ssh/config파일 (있는 경우)을 읽습니다 . 를 통해 명시 적 경로를 구성 파일로 전달해야합니다 -F.
Dan Dascalescu

14

더 많은 시도를 한 후에 내 클라이언트 사용자가 fuse그룹 에 없었습니다 . sudo usermod -a -G fuse myuser마운트를 추가 한 후 다시 정상적으로 작동합니다. 서버를 다시 설치하기 전에 어떻게 작동했는지 묻지 마십시오. 모든 도움을 주셔서 감사합니다!


2
로컬 또는 원격 파일 시스템의 사용자입니까?
Woodrow Barlow

1
@WoodrowBarlow 솔직히 더 이상 몰라 : D 내 최고의 추측은 로컬이 될 것입니다. 이곳에서 퓨즈를 사용하기 때문입니다.
André Stannek

또는gpasswd --add USER fuse
감속

제 경우에는 단순히 포트 번호가 필요했습니다. -p옵션 이 추가되었습니다 .
역설

11

이 오류 메시지는 ssh 연결이 실패 할 때의 기본 메시지이므로 @peterph 주석 별 가장 일반적인 답변은 최소한 -odebug다음을 사용하여 조사하는 것입니다 .

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

예를 들어

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

다른 곳에서 말했듯이, 일반적인 원인 누락 등 allow_other으로 fuse.conf또는 누락 된 fuse그룹 구성원 (즉, 우분투 18.04에 더 이상 필요하지 않을 수도 있지만?)

제 경우에는 다음과 같이 인쇄되었습니다.

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

... 지원되지 않는 암호 옵션을 가리킴 (페도라에서는 작동하지만 우분투에서는 작동하지 않음)


사용 -o debug, 내가 가지고 나쁜 SSH2 암호 스펙 'ARCFOUR': 명령 행 라인 0.
Salathiel Genèse

8

오늘도 같은 문제가있었습니다. ssh연결이 정상 sshfs입니다. 내 SSH 서버는 Qnap NAS (TS-228)입니다.

NAS 장치에서 SFTP활성화하면 문제가 해결되었습니다 .

추가 설정은 다음과 sshd_config같습니다.

Subsystem sftp /usr/libexec/sftp-server

1
그 해결책은 저에게 효과적이지 않습니다. 시도해 볼만한 것이 있으면 감사합니다.
고슴도치 고슴도치

Synology NAS에서 SFTP를 활성화하면 오류가 해결되었습니다. 그러나 마운트 된 폴더에 표시되는 내용은 ssh를 통해 직접 연결할 때와 다릅니다. 폴더가 누락되어 루트에 액세스 할 수 없습니다. 버머.
Heinrich Ulbricht

5

비슷한 문제인 퓨즈 구성 파일과 관련된 문제를 발견했습니다.

/etc/fuse.conf

나는 주석을 제거해야했다.

user_allow_other

5

누군가이 스레드를 우연히 발견 한 경우 : read: Connection reset by peer호스트 이름 을 확인할 수 없기 때문에이 오류가 발생했습니다 (정규화 된 호스트를 사용하지 않았습니다). 올바른 호스트 이름을 사용하면 문제가 해결되었습니다. 그러면 오류 메시지가 완전히 오도됩니다.

sshfs 명령이 실행되지 않는 경우 sshfs 명령을 실행하기 전에 시스템에 ssh를 설치하는 것이 좋습니다.


sshfs server-ssh-alias : / some / dir / mnt는 나를 위해 작동하지 않았지만 sshfs real.servername.org:/some/dir / mnt는 나를 위해 작동했습니다. (user_allow_other와 결합)
Brian C.

2

이 오류가 발생하여 위의 방법을 시도했지만 작동하지 못했습니다.

문제는 서버가 포트 22에서 ssh를 허용하지 않았다는 것입니다.

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

문제를 해결했습니다.


1
이유를 말하지 않고 공감하지 마십시오. 이것은 확인해야 할 합리적인 것입니다.
고슴도치 고슴도치

2

내 오류는 서버 측이었습니다. sshd의 sftp 하위 시스템은 기본적으로 최신 centos 7.6.xx에서 사용할 수 없도록 기본 설정되어 있습니다. / etc / ssh / sshd_config에서 다음 앞에서 "#"을 제거하여 수정되었습니다.

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

이 문제를 찾는 데 도움이되는 -odebug 레시피를 제공하는 eddygeek에게 감사합니다. 위 GEOM과 동일하지만 Qnap에만 국한되지는 않습니다.


2

실행하는 동안 같은 오류가있어 sudo sshfs [...] myhost: /mnt/myhost어디에 myhost내에서 정의 ~/.ssh/config파일.

문제는 running sudo sshfs이 내 홈 디렉토리에서를 찾지 않고 s ~/.ssh/config에서 찾는 것입니다 root. 해결책은 다음을 통해 구성 파일을 명시 적으로 전달하는 것입니다 -F.

sudo sshfs -F /home/dandv/.ssh/config [...] myhost: /mnt/myhost

1

/home/user/.ssh/known_hosts에서 호스트의 지문을 지우고 (실제로 전체 파일을 삭제함) 지문이 변경되어 수정했습니다. ssh를 사용하여 호스트에 연결하면 호스트가 연결되지 않은 이유가 분명해졌습니다.


1

매우 간단한 해결책을 찾고있는 사람들을 위해 : 디버그 모드에서 sshfs를 실행 한 후 연결이 끊어졌습니다.

스위치를 사용하여 상세 모드를 켜십시오.

-o debug

1

비슷한 문제가 있었고 네트워크 구성을 확인했을 때 게이트웨이 주소를 잃어 버린 시스템을 확인했습니다. 그래서 아래 명령을 실행했습니다.

route 기본 gw 192.169.0.254를 추가

한 다음 시스템을 재부팅합니다.

재부팅 후 문제가 해결되었습니다.


2
잘못된 게이트웨이로 "피어에 의한 연결 재설정"이 있습니까?!?
Jeff Schaller

1

필자의 경우 시작시 오랜 시간이 지난 후에 서버 인터페이스가 작동하지 않았습니다. 서버는 트렁크 모드로 Cisco 스위치 포트에 연결되어 있습니다. 트렁크 포트는 실제로 UP (보통 30 초 이상)이되기 전에 다양한 검사를 수행하므로 위의 연결 재설정 오류 메시지가 나타납니다.

내 솔루션 spanning-tree portfast에서는이 서버에 트렁크 모드가 필요하지 않기 때문에 스위치 포트를 액세스 모드로 변경하는 것이 었습니다 .

또한 sshfs에 디버깅 매개 변수를 사용 하여이 문제에 대해 알았습니다.

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