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サーバーは正常に機能しますか?
ペテルフ

Nautilus(Connect to Server...オプション)とFilezillaの両方でsftpを試しました。正常に動作します。Filezillaは不明なホストキーについて質問しましたが。
アンドレスタネク

sftp直接試してください-それがSSHFSが使用するものです。
ペテルフ

4
私には同じに見えます。クライアントからデバッグ情報を取得しようとしましたか?sshfs -odebug,sshfs_debug,loglevel=debug ...トリックを行うことができます(sourceforge.net/apps/mediawiki/fuse/index.php?title=SshfsFaqから取得)。
ペテルフ

1
@peterphはすでにそのアイデアを得ています;-) 2番目の更新を参照してください。ここに投稿したコマンドのデバッグパラメーターを省略しましたが、それらを使用して実行しました。
アンドレスタネク

回答:


21

-F /path/to/configオプションを使用していました。答えは私の設定ファイルにありました

IdentityFile ~/.ssh/id_rsa

うまくいきませんでした。絶対パスが必要です:

IdentityFile /home/user/.ssh/id_rsa

man ssh-config明示的にチルダを許可IdentityFile
CharlesB

4
@CharlesB私はそれを両方の方法でテストしましたが、私の答えが有効であることを保証します。そして、manページであなたが参照しているものを見ています。おそらくsudoで実行しているときのバグでしょうか?(私はので)
Sanchke Dellowar

7
確かに、sudoでsshfsを実行している場合、チルダはrootユーザーのホームです。次に、絶対パスを指定する必要があります。
CharlesB

1
~/.ssh/configファイルで絶対パスを使用している場合でも、実行sudo sshfsするとデフォルトでルートの/root/.ssh/configファイルが読み取られます(存在する場合)。経由で設定ファイルに明示的なパスを渡す必要があります-F
ダンダスカレスク

14

さらに試してみたところ、クライアントユーザーがfuseグループにいなかったことがわかりました。sudo usermod -a -G fuse myuserマウントで追加した後、再び正常に動作します。サーバーを再インストールする前に、どのように機能したのかを聞かないでください。ご協力ありがとうございます!


2
これはローカルまたはリモートファイルシステムのユーザーですか?
ウッド

1
@WoodrowBarlow正直に言うと、もうわかりません:Dヒューズを使用する場所だからです。
アンドレスタネク

またはgpasswd --add USER fuse
deceleratedcaviar

私の場合、単にポート番号が必要でした。これは-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_otherfuse.confたり行方不明fuseのグループメンバーシップを(それがUbuntuの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コマンドライン行0:不正なSSH2暗号仕様 'arcfour'を得ました。
サラティエルジェネゼ

8

今日も同じ問題がありました。 ssh接続はOKですが、そうでsshfsはありません。SSHサーバーはQnap NAS(TS-228)です。

この問題は、NASデバイスでSFTP有効にすることで修正されました。

追加の設定は次の場所にありsshd_configます:

Subsystem sftp /usr/libexec/sftp-server

1
その解決策は私にはうまくいきません。だから、他に試してみてください。
ハリネズミ

Synology NASでSFTPを有効にすると、エラーも解決しました。ただし、マウントされたフォルダーに表示されるコンテンツは、sshを介して直接接続する場合と同じではありません。フォルダーがないため、ルートにアクセスできません。残念。
ハインリッヒウルブリヒト

5

同様の問題が次のヒューズ構成ファイルに関係していることがわかりました。

/etc/fuse.conf

コメントを外さなければなりませんでした:

user_allow_other

5

誰かがこのスレッドにつまずいた場合に備えてread: Connection reset by peer、ホスト名が解決できないためにこのエラーが発生しました(完全修飾ホストを使用していませんでした)。適切なホスト名を使用することで問題が解決しました-エラーメッセージは、まったく完全に誤解を招きます。

sshfsコマンドを実行する前にマシンにsshするのが良いテストです。それが機能しない場合でも、sshfsは機能しません。


sshfs server-ssh-alias:/ some / dir / mntは機能しませんでしたが、sshfs real.servername.org:/some/dir / mntは機能しました。(user_allow_otherと組み合わせて)
ブライアン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ファイルで定義されています。

問題は、実行sudo sshfs中にのホームディレクトリで~/.ssh/configはなく、roots を検索したことです。解決策は、設定ファイルを明示的に渡すことです-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
不正なゲートウェイで「ピアによる接続リセット」が発生しましたか?!?
ジェフシャラー

1

私の場合、起動時に長い時間が経過してもサーバーインターフェイスが起動していませんでした。サーバーは、トランクモードでCiscoスイッチポートに接続されています。トランクポートは実際にUP(通常は30秒以上)になる前にさまざまなチェックを行うため、上記の接続リセットエラーメッセージが表示されます。

私の解決策は、スイッチポートをでアクセスモードに変更することでしspanning-tree portfastた。私の環境では、このサーバーにはトランクモードが不要です。

また、sshfsのデバッグパラメーターを使用して、この問題を発見しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.