CentOSを実行しているLinuxサーバーでSSHに問題があります。Windows cmdからPuTTYまたはsshを使用してサーバーに正常に接続できます。セキュアFTPを使用する場合も同様です。サーバーに接続してファイルのリストを取得でき、すべて問題ありません。問題は、ネットワークを介して任意の量のデータを送信しようとすると発生します。
特定のしきい値を超えて何かを転送しようとすると、接続は失敗し、「ピアによって接続がリセットされました」というメッセージが表示されます。ホームディレクトリに約3 MBのsqlファイルがあります。FTPで転送しようとすると、転送が開始され、約48kが転送された後に終了します。次に、新しい接続を開始し、さらに48kを転送します。PuTTYを使用してセッションを開くと、接続してログインできます。cat file.sql
再試行すると、接続が終了し、「ピアによって接続がリセットされました」というメッセージが表示されます。ローカルワークステーションからサーバーに移動する場合も同じ状況です。サーバーでホストされているsvnリポジトリにコミットする必要があるソースコードがかなりありますが、同じ「ピアによる接続リセット」メッセージが表示されます。
私は問題が私のローカルワークステーションにあることを知っています。私は妻のMacbookとサーバーへのSSHを問題なく使用できるからです。友人のLinuxボックスにssh(同じパテインストールを使用)し、サーバーからサーバーにsftpしてファイルをダウンロードし、ボックスからサーバーに別のsshセッションを開いて、ファイルをcatします。だから、何かが起こっていますが、私は何がわかりません。誰かアイデアはありますか?
更新
私はこれをもう少し理解しようとしました、そして私が単一のsshセッションで転送できるデータの量のハード制限があるようです。そうした場合はすぐにヒットしcat file.sql
ますがls -l
、一貫した回数を入力し続けることもでき、「ピアによる接続リセット」メッセージも表示されます。私はもう試した:
- 新しいSSHキーの生成
- ルーターを再起動する
- コンピュータを再起動する
- リモートサーバーの再起動
私はリモートサーバーにtcpdumpを書きましたが、私にとってはTCPがあまり理解できないほど詳細なレベルでは理解できません。私はsshでデバッグをオンにしており、接続がリセットされるまでのログの一部を次に示します。
Jul 24 23:10:56 server sshd[4507]: debug1: permanently_set_uid: 500/503
Jul 24 23:10:56 server sshd[4507]: debug1: Entering interactive session for SSH2.
Jul 24 23:10:56 server sshd[4507]: debug1: server_init_dispatch_20
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_open: ctype session rchan 256 win 16384 max 16384
Jul 24 23:10:56 server sshd[4507]: debug1: input_session_request
Jul 24 23:10:56 server sshd[4507]: debug1: channel 0: new [server-session]
Jul 24 23:10:56 server sshd[4507]: debug1: session_new: init
Jul 24 23:10:56 server sshd[4507]: debug1: session_new: session 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_open: channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_open: session 0: link with channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_open: confirm session
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_req: channel 0 request pty-req reply 1
Jul 24 23:10:56 server sshd[4507]: debug1: session_by_channel: session 0 channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_input_channel_req: session 0 req pty-req
Jul 24 23:10:56 server sshd[4507]: debug1: Allocating pty.
Jul 24 23:10:56 server sshd[4505]: debug1: session_new: init
Jul 24 23:10:56 server sshd[4505]: debug1: session_new: session 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_pty_req: session 0 alloc /dev/pts/2
Jul 24 23:10:56 server sshd[4507]: debug1: server_input_channel_req: channel 0 request shell reply 1
Jul 24 23:10:56 server sshd[4507]: debug1: session_by_channel: session 0 channel 0
Jul 24 23:10:56 server sshd[4507]: debug1: session_input_channel_req: session 0 req shell
Jul 24 23:10:56 server sshd[4508]: debug1: Setting controlling tty using TIOCSCTTY.
Jul 24 23:10:59 server sshd[4507]: Read error from remote host <my-ip>: Connection reset by peer
Jul 24 23:10:59 server sshd[4507]: debug1: do_cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: do_cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: cleanup
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: deleting credentials
Jul 24 23:10:59 server sshd[4505]: debug1: PAM: closing session
Jul 24 23:10:59 server sshd[4505]: pam_unix(sshd:session): session closed for user <me>
Jul 24 23:10:59 server sshd[4505]: debug1: session_pty_cleanup: session 0 release /dev/pts/2
更新2:
約1週間前、次のWiki投稿を使用してサーバーのssh設定を変更しました:http : //wiki.centos.org/HowTos/Network/SecuringSSH
ときどき仕事からサーバーにアクセスする必要があり、ファイアウォールでポート21が開いているため、sshポートを21に変更しました。この問題をさらに診断するために、ssh設定を元に戻してsshポートを22に戻しました。低く、見よ、私はポート22を使用するときにエラーに遭遇しない。それを21に戻し、転送された48kのデータをヒットしたときの時計仕掛けのように-ピアによって接続がリセットされた。
初期接続を取得でき、過去にポート21でftp接続を確立するのに問題がなかったことを考えると、ファイアウォールの構成に問題があるようには見えません。
少なくともこの時点で、サーバーのsshポートに問題が絞り込まれています。それを21にフリップすると、すぐに問題が発生し、22に戻します。まったく問題ありません...
だれでも、なぜリッスンポートが違いを生むのか思いつきますか?繰り返しますが、問題を引き起こしているのは私のWindows XPボックスだけです。誰かがこれを引き起こす可能性があることについて何か考えを持っているかどうか知らせてください。
アップデート2:
問題を絞り込んだだけで問題は解決しました-これはファイアウォールの問題ですが、ルーターではなくWindowsファイアウォールの問題です。ポート21を使用してWindowsファイアウォールを無効にすると、「ピアによる接続のリセット」メッセージが表示されません。明らかな質問に答えるために、はい、ポート21がWindowsファイアウォールで開いています。
このコンピューターはルーターのファイアウォールの背後にあるので、今は無効にできますが、ここで何が起こっているのかを知りたいと思います。