SSHを介してopensshサーバーのバージョン7.8以降にアクセスできません。

SSHを介してopensshサーバーのバージョン7.8以降にアクセスできません。

公開鍵認証を使用して端末からマイVPSに新しくインストールされたCentos8にログインすることはできません。

ログインすると正常に認証されているように見えますが、タイムアウトになり、[[リモートホストのIPアドレス]による接続のリセット](ピアではありません)が返されます。

すべてのログを確認しました。しかし、実際には何も来ません。

私が確認したこと:

  • /var/log/メッセージ
  • /var/log/audit/audit.log
  • /var/ログ/セキュリティ
  • ~/.ssh および ~/.ssh/id_rsa* ファイルに対する権限
  • /etc/ssh/sshd_config

LANの他のコンピュータからログインしようとしましたが、成功しませんでした。

  • Ubuntu18.04
  • CentOS 7マシン
  • ワールドSL

何の問題もなく、同じVPSできれいなCentOS7インストールにログインしたことは注目に値します。

OpenSSH 8に私が知らない変更はありますか?

CentOS7およびCentOS8システムにログインするための詳細な出力を添付しました。

ご覧のとおり、認証は両方の側面で成功します。

debug1: Authentication succeeded (publickey)

CentOS 8で見られる主な違いは、OpenSSH 7の代わりにOpenSSH 8を使用することです。

OpenSSH 8に私が知らない変更はありますか?

よろしくお願いします。


編集1

@thehostingadmin Web GUIからコピーして貼り付ける方法はわかりませんが、以下は提供されたコマンドの出力です。https://i.stack.imgur.com/9lJec.jpg

編集2

# sysctl -w net.ipv4.tcp_tw_recycle=0
sysctl: cannot stat /proc/sys/net/ipv4/tcp_tw_recycle: No such file or directory

# sysctl -w net.ipv4.tcp_tw_reuse=0
net.ipv4.tcp_tw_reuse = 0

結果:まだサイコロがありません

編集3

成功/失敗マトリックス

|         OS         |  SSH Client   |   Network    | Auth |  Success   |
|--------------------|---------------|--------------|------|------------|
| Ubuntu 18.04 (WSL) | OpenSSH_7.6p1 | LAN (NAT x2) | OK   | E01 | TO/H |
| Debian 10 (RPi)    | OpenSSH_7.9p1 | LAN (NAT x2) | OK   | TO/H       |
| Ubuntu 18.04       | OpenSSH_7.6p1 | LAN (NAT x1) | OK   | E02        |
| CentOS 7.8         | OpenSSH_7.4p1 | LAN (NAT x1) | OK   | TO/H       |
| CentOS 7.8         | OpenSSH_7.4p1 | VPS          | OK   | OK         |
  • E01:[リモートホストIPアドレス]ポート22経由で接続をリセットする
  • E02:packet_write_wait:[リモートホストのIPアドレス]ポート22に接続中:切断されたパイプ
  • TO/H:タイムアウト/中断

編集4 次のように変更されました。

# /etc/ssh/sshd_config
TCPKeepAlive yes
ClientAliveInterval 20
ClientAliveCountMax 5

測定可能な違いはありません。

編集5

SSH クライアントでエラーが発生した場合、E01サーバーは次の情報を表示できます。

# journalctl -u systemd-logind -fn0
Aug 27 14:51:18 host systemd-logind[701]: New session 136 of user root.
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 1
Aug 27 14:51:38 host systemd-logind[701]: Session 136 logged out. Waiting for processes to exit.
Aug 27 14:51:38 host systemd-logind[701]: Removed session 136.

成功したログインは次のとおりです。

Aug 27 15:04:42 host systemd-logind[701]: New session 143 of user root.

編集6

振り返ってみるLogLevelDEBUG3次のようなものがあった/var/log/secure

# Login Fail
Aug 27 15:59:07 host sshd[9387]: debug3: monitor_read: checking request 124
Aug 27 15:59:26 host sshd[9389]: Read error from remote host <wan ip> port 2611: Connection reset by peer
Aug 27 15:59:26 host sshd[9389]: debug1: do_cleanup

# Login Success
Aug 27 15:57:48 host sshd[9360]: debug3: monitor_read: checking request 124

編集7

@fra-sanにお詫び申し上げます。より詳細なロギング(-vvv)を追加すると、より詳細な情報が得られます。

# SSH fail
debug2: channel 0: request shell confirm 1
debug3: send packet: type 98
debug2: channel_input_open_confirmation: channel 0: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug3: send packet: type 1
Connection reset by <remote host ip> port 22

# SSH Success
debug2: channel 0: request shell confirm 1
debug3: send packet: type 98
debug2: callback done
debug2: channel 0: open confirm rwindow 0 rmax 32768
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 0
debug2: PTY allocation request accepted on channel 0
debug2: channel 0: rcvd adjust 2097152
debug3: receive packet: type 99
debug2: channel_input_status_confirm: type 99 id 0
debug2: shell request accepted on channel 0
Activate the web console with: systemctl enable --now cockpit.socket

編集8

私のホームルーター(カスタムファームウェア)を私のISPから提供されたルーターと交換しました。まだ喜びはありません。

編集9

Wiresharkパケット追跡に参加してください。

注:ホスティングプロバイダに問題を提起した後(該当する会社では機能します)、サーバー上のOpenSSHサーバーがOpenSSH 7.8に移行しましたが、問題は依然として続きます。

編集10

ラインサメ。クライアントとサーバー:https://i.stack.imgur.com/XRZRW.jpg

ノート

  • クライアントがサーバーからフレーム 29 を受信できませんでした。
  • ホスティングプロバイダがopensshv8に戻りました。

答え1

DEBUGロギングを有効にしてからJournalctlを使用してVPSでsshdを追跡しない限り、わかりません。

これを行うには、VPSプロバイダにコンソールを介してサーバーにアクセスする方法を尋ねる必要があります。プロバイダごとに方法が異なります。

/etc/ssh/sshd_configVPSのどこにでも次の設定を追加します。

LogLevel DEBUG

VPSでsshdを再起動します。

sudo systemctl restart sshd

VPSでsshdログを追跡します。

journalctl -u sshd -fn0

これで、ローカルコンピュータでsshを試してみると、sshdが話しているエラーを確認できます。

編集する:コメントの結果に応じて更新されました:

NATd ホストからの接続に問題があることを考慮して、Cent 8 VPS で次のカーネル設定が有効になっていることを確認し、有効になっている場合は無効にします。

sysctl -w net.ipv4.tcp_tw_recycle=0

sysctl -w net.ipv4.tcp_tw_reuse=0

これがうまくいったら、再/etc/sysctl.conf起動を使用して変更を維持します。

答え2

良いニュースがあります。

ISPに問題を提起しました。彼らは私に新しいIPを与えた。他に何をしたのかわかりませんが、問題は解決しました。

私はまだその仕事をしたいですopenssh

彼らは特にVMWareコミュニティ内でこれが既知の問題であると言います。

https://communities.vmware.com/thread/590825

この問題は、OpenSSH_7.8のこのフラグに関連する変更に関連していますQoS

http://www.openssh.com/txt/release-7.8

これ解決策~/.ssh/configファイルで次を使用する

Host *
    IPQoS=throughput

これが私に合っていることを確認するまで、これを答えとして表示しません。

答え3

これは私にとって重要です:

restorecon -Rv ~/.ssh 

ここから:https://wiki.centos.org/HowTos/Network/SecuringSSH

関連情報