SFTP 連線因「SSH2_MSG_KEXINIT 已傳送」而掛起

SFTP 連線因「SSH2_MSG_KEXINIT 已傳送」而掛起

我很難透過 SFTP 從我的本機伺服器連接到我的 AWS 測試帳戶。

當我 cd 進入我的私有 ssh 密鑰所在的目錄並運行時,sftp -v -i <private_key_file> <client>@<hostname>我得到的是:

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Connecting to <hostname> [<IP Adress>] port 22.
debug1: Connection established.
debug1: identity file <private_key_file> type 1
debug1: key_load_public: No such file or directory
debug1: identity file <private_key_file>-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: Remote protocol version 2.0, remote software version AWS_SFTP_1.1
debug1: no match: AWS_SFTP_1.1
debug1: Authenticating to <hostname>:22 as 'client'
debug1: SSH2_MSG_KEXINIT sent

很長一段時間後我得到Couldn't read packet: Connection reset by peer.

奇怪的是,當我從同一個本機伺服器到我的 AWS 開發帳戶進行相同的連接時,它會正常工作。 AWS 測試環境是行不通的。顯然,我已經為位於我的 AWS 測試環境中的客戶端分配了另一個公鑰,並在上面的命令中引用了新的私鑰。

任何幫助將不勝感激。

答案1

SSH 之後凍結SSH2_MSG_KEXINIT sent是 MTU 有問題的明確標誌。

路徑 MTU 發現應該會自動為您確定 MTU。然而,根據中間的防火牆規則和兩端的作業系統,這可能不起作用。

如果路徑 MTU 發現不起作用,您必須手動設定 MTU。

我建議從 1400 開始,然後升至仍然有效的最高值。

如何設定 MTU 並使更改持久取決於作業系統。

相關內容