公開鍵認証を使用して端末からマイ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システムにログインするための詳細な出力を添付しました。
- CentOS 7 SSHの確認:https://pastebin.com/uGc1T8tk
- CentOS 8 SSHが失敗します。https://pastebin.com/XadQQEBK
ご覧のとおり、認証は両方の側面で成功します。
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
振り返ってみるLogLevel
とDEBUG3
次のようなものがあった/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 を受信できませんでした。
- ホスティングプロバイダが
openssh
v8に戻りました。
答え1
DEBUGロギングを有効にしてからJournalctlを使用してVPSでsshdを追跡しない限り、わかりません。
これを行うには、VPSプロバイダにコンソールを介してサーバーにアクセスする方法を尋ねる必要があります。プロバイダごとに方法が異なります。
/etc/ssh/sshd_config
VPSのどこにでも次の設定を追加します。
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
これが私に合っていることを確認するまで、これを答えとして表示しません。