檢視原始碼 SSH 發行說明

Ssh 5.2.5

已修正的錯誤和故障

  • 在 OTP-27 遷移至 markdown 後,文件已進行潤飾。

    自有 ID:OTP-19335 輔助 ID:PR-9021

Ssh 5.2.4

已修正的錯誤和故障

  • 透過此變更,ssh 連線在接收到已終止通道的 exit-signal 訊息時不會崩潰。

    自有 ID:OTP-19326 輔助 ID:PR-8995GH-8929

Ssh 5.2.3

已修正的錯誤和故障

  • 透過此變更,已從 ssh 用戶端連線設定程序中移除競爭條件。

    自有 ID:OTP-19124 輔助 ID:GH-7550PR-8766

  • 透過此變更,ssh:connect 不會受到佇列中存在 EXIT 訊息的影響。

    自有 ID:OTP-19246 輔助 ID:GH-8223PR-8854

  • 透過此變更,ssh 會在從使用者接收的 socket 選項後附加 {active, false} 選項 - 以便始終使用 false 值。

    自有 ID:OTP-19247 輔助 ID:PR-8226

Ssh 5.2.2

已修正的錯誤和故障

  • 使用 TCP 連接埠號碼引數啟動的 SSh 精靈現在會在向使用者傳回錯誤之前,重新嘗試取得接聽 socket。

    自有 ID:OTP-19170 輔助 ID:GH-7746

  • 透過在投射 socket 控制通知之前監控連線處理常式程序,提高了強健性。

    自有 ID:OTP-19173 輔助 ID:PR-8310

Ssh 5.2.1

已修正的錯誤和故障

  • 透過此變更,連線關閉和自動視窗調整之間的競爭條件已修正。

    自有 ID:OTP-19109 輔助 ID:PR-8345

Ssh 5.2

已修正的錯誤和故障

  • 現在會為 SSH 程序指派標籤,以方便進行疑難排解。

    自有 ID:OTP-19017 輔助 ID:PR-8249

  • 透過此變更,ssh 用戶端將自動調整透過 SSH 遠端執行的命令的傳輸視窗大小。

    自有 ID:OTP-19057 輔助 ID:PR-8345GH-7483

改進和新功能

  • 現在 shell 會為文件說明命令 (h(Module))、自動完成和搜尋命令分頁輸出長輸出。

    自有 ID:OTP-18846 輔助 ID:PR-7845

  • 文件已遷移為使用 Markdown 和 ExDoc。

    自有 ID:OTP-18955 輔助 ID:PR-8026

  • 更新了所有 API 模組的類型和規格。

    自有 ID:OTP-18961

Ssh 5.1.4.4

已修正的錯誤和故障

  • 透過此變更,ssh 連線在接收到已終止通道的 exit-signal 訊息時不會崩潰。

    自有 ID:OTP-19326 輔助 ID:PR-8995、GH-8929

Ssh 5.1.4.3

已修正的錯誤和故障

  • 透過此變更,已從 ssh 用戶端連線設定程序中移除競爭條件。

    自有 ID:OTP-19124 輔助 ID:GH-7550、PR-8766

  • 透過此變更,ssh:connect 不會受到佇列中存在 EXIT 訊息的影響。

    自有 ID:OTP-19246 輔助 ID:GH-8223、PR-8854

  • 透過此變更,ssh 會在從使用者接收的 socket 選項後附加 {active, false} 選項 - 以便始終使用 false 值。

    自有 ID:OTP-19247 輔助 ID:PR-8226

Ssh 5.1.4.2

已修正的錯誤和故障

  • 透過此變更,使用 TCP 連接埠號碼引數啟動的 ssh 精靈會在向使用者傳回錯誤之前,重新嘗試取得接聽 socket。

    自有 ID:OTP-19170 輔助 ID:GH-7746

  • 透過此變更,在投射 socket 控制通知之前監控連線處理常式程序,提高了強健性。

    自有 ID:OTP-19173 輔助 ID:PR-8310

Ssh 5.1.4.1

已修正的錯誤和故障

  • 透過此變更,ssh 用戶端將自動調整透過 SSH 遠端執行的命令的傳輸視窗大小。

    自有 ID:OTP-19057 輔助 ID:PR-8345、GH-7483

  • 透過此變更,連線關閉和自動視窗調整之間的競爭條件已修正。

    自有 ID:OTP-19109 輔助 ID:PR-8345

Ssh 5.1.4

已修正的錯誤和故障

  • 透過此變更,擁有者和群組檔案屬性解碼已修正,並以整數類型的值為結果。

    自有 ID:OTP-19013 輔助 ID:GH-7897、PR-8220

Ssh 5.1.3

已修正的錯誤和故障

  • 透過此變更,acceptor_sup 不會針對 ssh 用戶端啟動,因為在該角色中不需要。

    自有 ID:OTP-18974

  • 透過此變更,ssh 會優先使用更安全的演算法,並更新文件以反映這一點。

    自有 ID:OTP-18986

  • 透過此變更,KEX 嚴格終端機訊息會以偵錯詳細程度發出。

    自有 ID:OTP-19002 輔助 ID:ERIERL-1041

  • 修正在 user_interactive 模式中讀取 ssh 用戶端的密碼。

    自有 ID:OTP-19007 輔助 ID:ERIERL-1049

Ssh 5.1.2

已修正的錯誤和故障

  • 透過此變更,Curve25519 和 Curve448 KEX 方法成為最優先選項(與 RFC8731 相關)。

    自有 ID:OTP-18964

Ssh 5.1.1

已修正的錯誤和故障

  • 透過此變更(作為對 CVE-2023-48795 的回應),ssh 可以與支援它的對等端協商「嚴格 KEX」OpenSSH 擴充功能;此外,'chacha20-poly1305@openssh.com' 演算法的優先順序也降低。

    如果無法確保連線雙方都具備嚴格 KEX,則可以使用標準 ssh 組態停用受影響的加密模式 (CHACHA 和 CBC)。這將提供針對漏洞的保護,但會影響互通性。請參閱 在 SSH 中設定演算法

    *潛在的不相容性*

    自有 ID:OTP-18897

Ssh 5.1

已修正的錯誤和故障

  • 將某些檔案中無意加入的 Erlang 公用授權 1.1 標頭,取代為預期的 Apache 授權 2.0 標頭。

    自有 ID:OTP-18815 輔助 ID:PR-7780

  • 避免將 ANSI 跳脫序列輸出到無效的 ssh 用戶端。

    自有 ID:OTP-18861 輔助 ID:PR-7627

  • 透過此變更,連線處理常式在成為 socket 擁有者之前不會執行 socket 操作。先前,如果連線處理常式嘗試使用已結束其擁有者的 socket,則可能會發生錯誤。

    自有 ID:OTP-18869 輔助 ID:PR-7849、GH-7571

改進和新功能

  • 透過此變更,反向搜尋適用於 ssh shell 和非無效終端機。

    自有 ID:OTP-18730 輔助 ID:PR-7499

Ssh 5.0.1

已修正的錯誤和故障

  • 新增多行編輯支援,以適用於透過 OTP ssh 精靈連線的 ssh 用戶端。

    自有 ID:OTP-18653 輔助 ID:PR-7242

Ssh 5.0

改進和新功能

  • ssh_cli 已更新,以使用新的 Erlang shell 實作中引入的變更。

    自有 ID:OTP-18231 輔助 ID:OTP-17932 PR-6144

  • 現在在 shell 中輸入 Ctrl+L 會清除螢幕並重繪當前行,而不是僅重繪當前行。若要僅重繪當前行,您現在必須輸入 Alt+L。這讓 Ctrl+L 的行為更接近 bash 和其他 shell 的運作方式。

    *潛在的不相容性*

    自有 ID:OTP-18285 輔助 ID:PR-6262

  • 棄用 dbg:stop_clear/0,因為它只是 dbg:stop/0 的函數別名。

    自有 ID:OTP-18478 輔助 ID:GH-6903

  • 實作已修正為在適當情況下使用 proc_lib:init_fail/2,3,而不是 proc_lib:init_ack/1,2

    *潛在的不相容性*

    自有 ID:OTP-18490 輔助 ID:OTP-18471, GH-6339, PR-6843

Ssh 4.15.3.8

修正的錯誤與故障

  • 透過此變更,ssh 連線在接收到已終止通道的 exit-signal 訊息時不會崩潰。

    自有 ID:OTP-19326 輔助 ID:PR-8995、GH-8929

Ssh 4.15.3.7

修正的錯誤與故障

  • 透過此變更,已從 ssh 用戶端連線設定程序中移除競爭條件。

    自有 ID:OTP-19124 輔助 ID:GH-7550、PR-8766

  • 透過此變更,ssh:connect 不會受到佇列中存在 EXIT 訊息的影響。

    自有 ID:OTP-19246 輔助 ID:GH-8223、PR-8854

  • 透過此變更,ssh 會在從使用者接收的 socket 選項後附加 {active, false} 選項 - 以便始終使用 false 值。

    自有 ID:OTP-19247 輔助 ID:PR-8226

Ssh 4.15.3.6

修正的錯誤與故障

  • 使用 TCP 連接埠號碼引數啟動的 SSh 精靈現在會在向使用者傳回錯誤之前,重新嘗試取得接聽 socket。

    自有 ID:OTP-19170 輔助 ID:GH-7746

  • 透過在投射 socket 控制通知之前監控連線處理常式程序,提高了強健性。

    自有 ID:OTP-19173 輔助 ID:PR-8310

Ssh 4.15.3.5

修正的錯誤與故障

  • 透過此變更,ssh 用戶端將自動調整透過 SSH 遠端執行的命令的傳輸視窗大小。

    自有 ID:OTP-19057 輔助 ID:PR-8345、GH-7483

  • 透過此變更,連線關閉和自動視窗調整之間的競爭條件已修正。

    自有 ID:OTP-19109 輔助 ID:PR-8345

Ssh 4.15.3.4

修正的錯誤與故障

  • 透過此變更,擁有者和群組檔案屬性解碼已修正,並以整數類型的值為結果。

    自有 ID:OTP-19013 輔助 ID:GH-7897、PR-8220

Ssh 4.15.3.3

修正的錯誤與故障

  • 透過此變更,ssh 會優先使用更安全的演算法,並更新文件以反映這一點。

    自有 ID:OTP-18986

  • 透過此變更,KEX 嚴格終端機訊息會以偵錯詳細程度發出。

    自有 ID:OTP-19002 輔助 ID:ERIERL-1041

Ssh 4.15.3.2

修正的錯誤與故障

  • 透過此變更,Curve25519 和 Curve448 KEX 方法成為最優先選項(與 RFC8731 相關)。

    自有 ID:OTP-18964

Ssh 4.15.3.1

修正的錯誤與故障

  • 透過此變更,連線處理常式在成為 socket 擁有者之前不會執行 socket 操作。先前,如果連線處理常式嘗試使用已結束其擁有者的 socket,則可能會發生錯誤。

    自有 ID:OTP-18869 輔助 ID:PR-7849、GH-7571

  • 透過此變更(作為對 CVE-2023-48795 的回應),ssh 可以與支援它的對等端協商「嚴格 KEX」OpenSSH 擴充功能;此外,'chacha20-poly1305@openssh.com' 演算法的優先順序也降低。

    如果無法確保連線雙方都具備嚴格 KEX,則可以使用標準 ssh 組態停用受影響的加密模式 (CHACHA 和 CBC)。這將提供針對漏洞的保護,但會影響互通性。請參閱 在 SSH 中設定演算法

    *潛在的不相容性*

    自有 ID:OTP-18897

Ssh 4.15.3

修正的錯誤與故障

  • 透過此變更,PKCS8 格式的私鑰檔案可正確解碼,並可啟動帶有此類金鑰的 SSH 精靈。

    自有 ID:OTP-18446 輔助 ID:GH-6475

改進與新功能

  • 將 size/1 取代為 tuple_size/1 或 byte_size/1

    size/1 BIF 未經 JIT 優化,且其使用可能導致 Dialyzer 產生較差的型別。

    當知道要測試的值必須是元組時,應始終優先使用 tuple_size/1

    當知道要測試的值必須是二進位制時,應優先使用 byte_size/1。但是,byte_size/1 也接受位元字串(將大小向上捨入為整數個位元組),因此必須確保在呼叫 byte_size/ 之前先呼叫 is_binary/1,以確保拒絕位元字串。請注意,編譯器會移除多餘的 is_binary/1 呼叫,因此如果不確定先前的程式碼是否已確保引數是二進位制,則在呼叫 byte_size/1 之前立即新增 is_binary/1 測試沒有任何損害。

    自有 ID:OTP-18432 輔助 ID:GH-6672,PR-6793,PR-6784,PR-6787,PR-6785,PR-6682,PR-6800,PR-6797,PR-6798,PR-6799,PR-6796,PR-6813,PR-6671,PR-6673,PR-6684,PR-6694,GH-6677,PR-6696,PR-6670,PR-6674

Ssh 4.15.2

修正的錯誤與故障

  • 透過此變更,當格式化某些連線失敗的資訊報告時,ssh 應用程式不會崩潰。

    自有 ID:OTP-18386 輔助 ID:PR-6611

  • 透過此變更,ssh 不會記錄過長訊息。

    自有 ID:OTP-18417 輔助 ID:DAFH-1349,ERIERL-888,IA18357

Ssh 4.15.1

修正的錯誤與故障

  • 當連線被對等點關閉時,ssh_conection_handler 正常關機

    自有 ID:OTP-18326 輔助 ID:ERIERL-865

Ssh 4.15

修正的錯誤與故障

  • 處理通道關閉時罕見的競爭條件。

    自有 ID:OTP-18220 輔助 ID:ERIERL-666, ERIERL-661

改進與新功能

  • 新的 ssh 選項 no_auth_needed 可跳過 ssh 驗證。謹慎使用!

    自有 ID:OTP-18134 輔助 ID:GH-6021

  • 此變更修正了為 inets/httpd 範例產生的 dialyzer 警告(包含 ssh_sftp 模組的規格所需的調整)。

    自有 ID:OTP-18178 輔助 ID:ERIERL-833, ERIERL-834, ERIERL-835

  • 新的函數 ssh:daemon_replace_options/2 可讓您變更執行中 SSH 伺服器中的 Options

    已建立的連線不受影響,僅有在呼叫此新函數後建立的連線才會受影響。

    自有 ID:OTP-18196

  • 新增逾時作為選項 max_initial_idle_time。它會關閉在逾時時間內未配置通道的連線。

    如需有關逾時的詳細資訊,請參閱使用者指南 強化 章節中的「逾時」區段。

    自有 ID:OTP-18207 輔助 ID:PR-6231

Ssh 4.14.1

修正的錯誤與故障

  • 可以使用參數 max_log_item_len 限制記錄中的二進位制。預設值為 500 個位元組。

    自有 ID:OTP-18094

Ssh 4.14

改進與新功能

  • ssh 內部 Edward 曲線(ed25519 和 ed448)的表示法具有暫時的表示法(ed_pri 和 ed_pub)。

    現在已變更為 public_key 形式。如需詳細資訊,請參閱手冊。

    *潛在的不相容性*

    自有 ID:OTP-17920

  • 先前內部函數 ssh_file:extract_public_key/1 已公開記錄。

    先前在內部位於 ssh_transport 中。

    自有 ID:OTP-18079 輔助 ID:GH-5767

Ssh 4.13.2.6

修正的錯誤與故障

  • 透過此變更,ssh 會優先使用更安全的演算法,並更新文件以反映這一點。

    自有 ID:OTP-18986

  • 透過此變更,KEX 嚴格終端機訊息會以偵錯詳細程度發出。

    自有 ID:OTP-19002 輔助 ID:ERIERL-1041

  • 透過此變更,擁有者和群組檔案屬性解碼已修正,並以整數類型的值為結果。

    自有 ID:OTP-19013 輔助 ID:GH-7897、PR-8220

Ssh 4.13.2.5

修正的錯誤與故障

  • 透過此變更,Curve25519 和 Curve448 KEX 方法成為最優先選項(與 RFC8731 相關)。

    自有 ID:OTP-18964

Ssh 4.13.2.4

修正的錯誤與故障

  • 透過此變更,連線處理常式在成為 socket 擁有者之前不會執行 socket 操作。先前,如果連線處理常式嘗試使用已結束其擁有者的 socket,則可能會發生錯誤。

    自有 ID:OTP-18869 輔助 ID:PR-7849、GH-7571

  • 透過此變更(作為對 CVE-2023-48795 的回應),ssh 可以與支援它的對等端協商「嚴格 KEX」OpenSSH 擴充功能;此外,'chacha20-poly1305@openssh.com' 演算法的優先順序也降低。

    如果無法確保連線雙方都具備嚴格 KEX,則可以使用標準 ssh 組態停用受影響的加密模式 (CHACHA 和 CBC)。這將提供針對漏洞的保護,但會影響互通性。請參閱 在 SSH 中設定演算法

    *潛在的不相容性*

    自有 ID:OTP-18897

Ssh 4.13.2.3

修正的錯誤與故障

  • 透過此變更,修正了 ssh_connection_handler 模組中與錯誤記錄相關的崩潰。

    自有 ID:OTP-18620 輔助 ID:OTP-18386,PR-6611

Ssh 4.13.2.2

修正的錯誤與故障

  • 透過此變更,當格式化某些連線失敗的資訊報告時,ssh 應用程式不會崩潰。

    自有 ID:OTP-18386 輔助 ID:PR-6611

  • 透過此變更,ssh 不會記錄過長訊息。

    自有 ID:OTP-18417 輔助 ID:DAFH-1349,ERIERL-888,IA18357

Ssh 4.13.2.1

修正的錯誤與故障

  • 可以使用參數 max_log_item_len 限制記錄中的二進位制。預設值為 500 個位元組。

    自有 ID:OTP-18094

Ssh 4.13.2

修正的錯誤與故障

  • 修正 makefile 相依性錯誤。

    自有 ID:OTP-17847 輔助 ID:PR-5574 GH-5548

  • 修正了 OpenSSH 格式 openssh_key_v1 中 Ed25519/Ed448 金鑰的錯誤 OpenSSH 解碼。

    自有 ID:OTP-17868 輔助 ID:PR-5520

  • 修正 ssh_file 輸入,特別是針對實驗性的 openssh-key-v1 編碼。

    自有 ID:OTP-17912 輔助 ID:GH-5680

  • 使用 ssh:encode/2 編碼時,私有 ED 金鑰的標籤不正確。

    元組的第一個元素為 ed_priv,但應為 ed_pri。現在已更正此問題。

    *潛在的不相容性*

    自有 ID:OTP-17928 輔助 ID:PR-5679

改進與新功能

  • 新增對 RFC 4716 格式中 Ed25519/Ed448 SSH 主機金鑰(例如 openssl 產生或透過 Erlang 函數(例如 public_key:generate_key({namedCurve, ed25519}))產生的「-----BEGIN EC PRIVATE KEY-----」)的支援。

    先前和現在仍支援由 ssh-keygen 產生的 Ed25519 SSH 主機金鑰。

    自有 ID:OTP-17857 輔助 ID:PR-5532

Ssh 4.13.1

修正的錯誤與故障

  • ssh 伺服器 parallel_login 選項在 OTP-24 中遺失

    自有 ID:OTP-17850 輔助 ID:ERIERL-764

Ssh 4.13

修正的錯誤與故障

  • 現在,connect_timeout 選項的值會被用作協商逾時的預設值。

    自身 ID:OTP-17707 輔助 ID:ERIERL-706

改進與新功能

  • 在 connect/2,3,4 中加入更好的錯誤處理。偵測不正確的引數,並返回資訊豐富的錯誤元組,而不是拋出 function_clause 或類似的錯誤。

    自身 ID:OTP-17515 輔助 ID:ERIERL-648

  • 使 ssh 演算法選擇能更好地處理密碼學 FIPS 模式中的動態變更。

    自身 ID:OTP-17795

Ssh 4.12.5

已修正的錯誤與故障

  • 修正了 acceptor 迴圈中的競爭條件:如果客戶端在 tcp 連接後立即斷開連線,伺服器可能會停止處理該位址:埠上的連線。

    自身 ID:OTP-17764 輔助 ID:ERIERL-726

Ssh 4.12.4

已修正的錯誤與故障

  • 修正了客戶端子系統啟動緩慢(>30 秒)可能導致記錄檔中出現密碼的問題。

    自身 ID:OTP-17390 輔助 ID:ERIERL-648

  • 修正了當以 sftp 伺服器身分執行,且客戶端請求目錄內容清單時發生的錯誤。

    修正方式是在 ssh_sftpd:get_attrs/5 內部函式中,將錯誤代碼 {error, eacces} 視為 {error, enoent} 處理;也就是直接跳過它。

    自身 ID:OTP-17586 輔助 ID:GH-5014

改進與新功能

  • 「金鑰交換失敗」的資訊報告現在提供更多資訊。

    自身 ID:OTP-17450 輔助 ID:ERIERL-655

Ssh 4.12.3

已修正的錯誤與故障

  • 從進度報告和監管報告中篩除敏感資料(密碼等)。

    自身 ID:OTP-17468 輔助 ID:ERIERL-656

Ssh 4.12.2

已修正的錯誤與故障

  • 避免 ssh known_hosts 檔案中出現額外的空白行

    自身 ID:OTP-17427

Ssh 4.12.1

改進與新功能

Ssh 4.12

已修正的錯誤與故障

  • 此應用程式已新增遺失的執行階段相依性。

    自身 ID:OTP-17243 輔助 ID:PR-4557

  • 變更了傳送視窗處理方式,使其在某些情況下不會初始化過大的視窗。

    自身 ID:OTP-17353

改進與新功能

  • 從 SSH 實作中移除對 erlang:is_port/1 的使用。

    自身 ID:OTP-16750

  • 內部連線設定重構。

    自身 ID:OTP-17051

  • 將 SSH fsm 重構為一組(希望)更易於理解的 gen_statem 回呼檔案。

    自身 ID:OTP-17140

  • RSA SHA1 簽名/驗證變體預設為停用。也就是說,ssh-rsa 預設為停用,以及來自 id_rsa 和 ssh_host_rsa_key 的 RSA 金鑰的 SHA1 簽名/驗證也預設為停用。所有 SHA2 簽名/驗證預設為啟用。

    原因在於 SHA1 現在被認為很容易破解。

    若要啟用使用 SHA1 的 RSA,例如針對非常舊且不安全的對等點,請參閱使用者指南章節在 SSH 中配置演算法中的範例 9

    *潛在的不相容性*

    自身 ID:OTP-17259 輔助 ID:OTP-16511, ERIERL-619

  • 使 ssh 監管者適應監管者中的新「significant」和「auto_shutdown」旗標。

    自身 ID:OTP-17322 輔助 ID:PR-4638, EEP-56, OTP-17334

  • 函式 public_key:ssh_encode/2、public_key:ssh_decode/2、public_key:ssh_hostkey_fingerprint/1 和 public_key:ssh_hostkey_fingerprint/2 已棄用。

    SSH 中提供替代函式,請參閱 Erlang/OTP 文件中的棄用章節。

    自身 ID:OTP-17352

Ssh 4.11.1.7

已修正的錯誤與故障

  • 透過此變更(作為對 CVE-2023-48795 的回應),ssh 可以與支援它的對等端協商「嚴格 KEX」OpenSSH 擴充功能;此外,'chacha20-poly1305@openssh.com' 演算法的優先順序也降低。

    如果無法在連線的兩端都確保嚴格的 KEX 可用性,則可以使用標準 ssh 設定來停用受影響的加密模式(CHACHA 和 CBC)。這將提供針對漏洞的保護,但會影響互通性。請參閱 SSH 使用者指南中的配置演算法。

    *潛在的不相容性*

    自有 ID:OTP-18897

  • 透過此變更,KEX 嚴格終端機訊息會以偵錯詳細程度發出。

    自有 ID:OTP-19002 輔助 ID:ERIERL-1041

Ssh 4.11.1.6

已修正的錯誤與故障

  • 可以使用參數 max_log_item_len 限制記錄中的二進位制。預設值為 500 個位元組。

    自有 ID:OTP-18094

Ssh 4.11.1.5

已修正的錯誤與故障

  • 修正了多次重新啟動後伺服器遭封鎖的問題。適用於具有選項 {parallel_login,true}{max_sessions, int()>0} 的守護進程。

    自身 ID:OTP-17835 輔助 ID:ERIERL-721

Ssh 4.11.1.4

已修正的錯誤與故障

  • 現在,connect_timeout 選項的值會被用作協商逾時的預設值。

    自身 ID:OTP-17707 輔助 ID:ERIERL-706

Ssh 4.11.1.3

已修正的錯誤與故障

  • 從進度報告和監管報告中篩除敏感資料(密碼等)。

    自身 ID:OTP-17468 輔助 ID:ERIERL-656

改進與新功能

  • 「金鑰交換失敗」的資訊報告現在提供更多資訊。

    自身 ID:OTP-17450 輔助 ID:ERIERL-655

Ssh 4.11.1.2

已修正的錯誤與故障

  • 避免 ssh known_hosts 檔案中出現額外的空白行

    自身 ID:OTP-17427

Ssh 4.11.1.1

已修正的錯誤與故障

  • 修正了客戶端子系統啟動緩慢(>30 秒)可能導致記錄檔中出現密碼的問題。

    自身 ID:OTP-17390 輔助 ID:ERIERL-648

Ssh 4.11.1

已修正的錯誤與故障

  • 當在先前有通道的空連線上,通道在逾時時間內開啟時,未取消 idle_time 計時器。

    自身 ID:OTP-17279

Ssh 4.11

改進與新功能

  • 在 sftp 版本 3 中,SSH_FXP_NAME 回應中用於顯示檔案資訊的長名稱欄位現在包含 sftp 草稿中定義的展開格式。這類似於 Unix 系統上 "ls -l" 返回的格式。

    自身 ID:OTP-17197 輔助 ID:PR- 3049

Ssh 4.10.8

已修正的錯誤與故障

  • 不要讓緩慢的連線設定和拆解逾時。也移除了控制器罕見的當機風險。

    自身 ID:OTP-17173 輔助 ID:ERIERL-581

Ssh 4.10.7

已修正的錯誤與故障

  • 即使伺服器未要求 pty,SSH 守護進程也會錯誤地將 LF 取代為 CRLF。

    自身 ID:OTP-17108 輔助 ID:ERL-1442

Ssh 4.10.6

已修正的錯誤與故障

  • 修正了 ssh cli/shell 處理中的問題。最重要的是

    1. ssh:shell 函式有時會導致輸入被重複回顯,

    2. ssh:shell 函式未將 LANG 和 LC_ALL shell 變數傳輸到連線的伺服器,這有時會導致 Unicode 處理錯誤,

    3. Unicode 並非總是正確地傳輸到對等點和從對等點傳輸。

    自身 ID:OTP-16799

  • 有時會傳送 SSH 協定訊息 SSH_MSG_DISCONNECT,而不是 SSH_MSG_CHANNEL_FAILURE

    自身 ID:OTP-16900

  • ssh_cli 模組現在始終將結束狀態傳送至連線的客戶端,以便它們可以使用該狀態來檢查指令是否成功執行。

    自身 ID:OTP-16908 輔助 ID:PR-2753

改進與新功能

  • 新的選項 pk_check_user 啟用在進行公開金鑰驗證時,檢查伺服器中客戶端的使用者名稱。

    自身 ID:OTP-16889

Ssh 4.10.5

已修正的錯誤與故障

  • ssh 客戶端可以從接聽 socket 取得已接受的 socket,並對其執行 ssh:connect/2。

    從同一個接聽 socket 接受的多個 socket 上的多個客戶端已停止運作。現在已修正此問題。

    自身 ID:OTP-17021 輔助 ID:ERIERL-567

Ssh 4.10.4.1

已修正的錯誤與故障

  • 從進度報告和監管報告中篩除敏感資料(密碼等)。

    自身 ID:OTP-17468 輔助 ID:ERIERL-656

Ssh 4.10.4

已修正的錯誤與故障

  • inet 選項 raw 未從 ssh 選項清單傳遞至 inet。

    自身 ID:OTP-17016 輔助 ID:ERIERL-562

Ssh 4.10.3

已修正的錯誤與故障

  • 如果連線處理程序遭到強行終止,可能會留下監管者子樹。這會導致 max_sessions 檢查選項錯誤地計算現有的連線,並最終可能封鎖進一步的連線。

    自身 ID:OTP-17006 輔助 ID:ERIERL-556

Ssh 4.10.2

已修正的錯誤與故障

  • 修正解碼器錯誤。

    自身 ID:OTP-16904

Ssh 4.10.1

已修正的錯誤與故障

  • 修正了將傳送至 ssh-agent 的訊息分割成多個個別封包時發生的錯誤。

    自有 ID:OTP-16761 輔助 ID:PR-2679

  • 修復了當客戶端請求過大的 cli 視窗時,可能導致 cli 伺服器崩潰的錯誤。

    自有 ID:OTP-16791 輔助 ID:ERIERL-520

改進與新功能

  • 增加了測試覆蓋率。

    自有 ID:OTP-14106

  • 在使用者指南中新增了一個關於強化 OTP SSH的章節。

    自有 ID:OTP-16411

  • 舊版和 OpenSSL 現在不支援的加密庫版本(1.0.1 及更早版本)中,用於金鑰生成的內部 Diffie-Hellman 高階 API 速度較慢。

    如果無論如何使用了此類加密庫,則會在加密應用程式內部使用低階 API。

    自有 ID:OTP-16774

  • 為守護程式定義了一個新的逾時時間:hello_timeout

    此逾時時間應作為一個簡單的阻斷服務 (DoS) 攻擊防護使用。如果從客戶端在 TCP 初始連線建立後,在逾時限制內沒有收到有效的首個 SSH 訊息,它將關閉傳入的 TCP 連線。

    由於相容性的原因,初始值為 30 秒,但如果需要,可以降低,例如在程式碼或設定檔中。

    自有 ID:OTP-16803

Ssh 4.10

已修正的錯誤和故障

  • 修復 ssh_sftpd 類型規範中的錯誤。

    自有 ID:OTP-16363

改進與新功能

  • 負責預設檔案處理的 Plug-in 檔案 ssh_file.erl 經過重構、最佳化和重寫。

    自有 ID:OTP-11688 輔助 ID:OTP-12699

  • OpenSSH 6.5 引入了一種新的金鑰檔案表示方式,稱為openssh-key-v1

    OTP/SSH 曾經對此格式進行過實驗性實作。現在此實作已獲得改進和支援,但處理加密金鑰除外。

    自有 ID:OTP-15434

  • 實作了 TCP/IP 連接埠轉送,也稱為通道傳輸,也稱為 tcp-forward/direct-tcp。在 OpenSSH 用戶端中,這對應於選項 -L 和 -R。

    用戶端或伺服器會監聽指定的 Socket,當有任何東西透過 TCP/IP 連線到它時,該連線會以加密通道轉送到對等方。然後,對等方會連線到預定義的 IP/連接埠配對,並充當 Proxy。

    請參閱手冊,ssh:tcpip_tunnel_to_server/6ssh:tcpip_tunnel_from_server/6

    此功能預設為停用,但在啟動守護程式時可以啟用。

    自有 ID:OTP-15998 輔助 ID:PR-2376、PR-2368

  • Supervisor Tree 的用戶端(在 sshc_sup 下)之前不完整;通道處理程序是透過連結處理的,但沒有 Supervisor。

    現在已使用在 sshc_sup 下的用戶端 Supervisor Tree 進行修正,類似於在 sshd_sup 下的伺服器端 Supervisor Tree。

    自有 ID:OTP-16026 輔助 ID:PR-2368, (OTP-15998)

  • 擴充功能 posix-rename@openssh.com 已新增至 ssh/sftp 重新命名作業。

    自有 ID:OTP-16289 輔助 ID:PR-2448

  • 舊加密 API 中已棄用的函數呼叫已替換為其替代函數呼叫。

    自有 ID:OTP-16346

  • 預設 known_hosts 檔案處理已改進為包含連接埠。

    該檔案中內容的處理已更新為支援完整語法,但 1) 萬用字元 '?'、2) 標準名稱中的萬用字元和 3) 選項 '@cert-authority' 除外

    自有 ID:OTP-16506

  • MAC(訊息授權碼)演算法

    • hmac-sha1-etm@openssh.com
    • hmac-sha2-256-etm@openssh.com
    • hmac-sha2-512-etm@openssh.com

    已實作。

    自有 ID:OTP-16508

  • 金鑰交換演算法 'diffie-hellman-group14-sha1''diffie-hellman-group-exchange-sha1' 預設為停用。原因是 SHA1 現在被認為是不安全的。

    如果需要,可以啟用它們,請參閱 SSH(應用程式)

    *潛在的不相容性*

    自有 ID:OTP-16509

  • 公開金鑰演算法 'ssh-dss' 預設為停用。原因是它現在被認為是不安全的。

    如果需要,可以啟用它,請參閱 SSH(應用程式)

    *潛在的不相容性*

    自有 ID:OTP-16510

  • 公開金鑰 'ssh-rsa' 因為使用了 SHA1,現在被認為是不安全的。

    因此它已遭棄用,且在 OTP-24.0 中將不再預設啟用。

    *潛在的不相容性*

    自有 ID:OTP-16511

  • 為檔案介面 ssh_file.erl 引入了選項 optimize (optimize_key_lookup)

    此選項可讓使用者在預設處理(速度快但耗用記憶體)與記憶體效率高但不快的處理之間進行選擇。只有對於大型檔案,效果可能才會明顯。

    請參閱 ssh_file:is_host_key/5ssh_file:is_auth_key/3 的手冊。

    自有 ID:OTP-16512

  • ssh 代理程式現在在 ssh_agent 金鑰回呼模組中實作。

    透過在例如 ssh:connect/3 中使用選項 {key_cb, {ssh_agent, []}} 啟用。

    有關詳細資訊,請參閱 ssh_agent 手冊

    自有 ID:OTP-16513

  • 現在可以在 .config 檔案中完成演算法設定。

    例如,這對於啟用預設為停用的演算法很有用。現在可以在 .config 檔案中啟用它,而無需變更程式碼。

    請參閱 SSH 使用者指南章節「SSH 中的設定」

    自有 ID:OTP-16540

  • 記錄了在呼叫 ssh:connect 和 ssh:daemon 時無法使用的 gen_tcp Socket 選項。

    自有 ID:OTP-16589

  • kb_int_fun_4() 新增至 authentication_daemon_options(),以允許從驗證函數 pwdfun_4() 傳回的使用者狀態產生動態鍵盤互動式提示。

    自有 ID:OTP-16622 輔助 ID:PR-2604

Ssh 4.9.1.5

已修正的錯誤和故障

  • 透過此變更(作為對 CVE-2023-48795 的回應),ssh 可以與支援它的對等端協商「嚴格 KEX」OpenSSH 擴充功能;此外,'chacha20-poly1305@openssh.com' 演算法的優先順序也降低。

    如果無法在連線的兩端都確保嚴格的 KEX 可用性,則可以使用標準 ssh 設定來停用受影響的加密模式(CHACHA 和 CBC)。這將提供針對漏洞的保護,但會影響互通性。請參閱 SSH 使用者指南中的配置演算法。

    *潛在的不相容性*

    自有 ID:OTP-18897

  • 透過此變更,KEX 嚴格終端機訊息會以偵錯詳細程度發出。

    自有 ID:OTP-19002 輔助 ID:ERIERL-1041

Ssh 4.9.1.4

已修正的錯誤和故障

  • 現在,connect_timeout 選項的值會被用作協商逾時的預設值。

    自身 ID:OTP-17707 輔助 ID:ERIERL-706

Ssh 4.9.1.3

已修正的錯誤和故障

  • 當在先前有通道的空連線上,通道在逾時時間內開啟時,未取消 idle_time 計時器。

    自身 ID:OTP-17279

Ssh 4.9.1.2

已修正的錯誤和故障

  • 修正解碼器錯誤。

    自身 ID:OTP-16904

Ssh 4.9.1.1

已修正的錯誤和故障

  • 修復了當客戶端請求過大的 cli 視窗時,可能導致 cli 伺服器崩潰的錯誤。

    自有 ID:OTP-16791 輔助 ID:ERIERL-520

改進與新功能

  • 為守護程式定義了一個新的逾時時間:hello_timeout

    如果在逾時限制內,沒有從用戶端收到有效的首個訊息,它會關閉傳入的 TCP 連線。

    自有 ID:OTP-16803

Ssh 4.9.1

已修正的錯誤和故障

  • 重新協商金鑰決策和 Socket 關閉之間可能存在的危害。

    自有 ID:OTP-16462 輔助 ID:ERIERL-464

Ssh 4.9

已修正的錯誤和故障

  • 修正了 ssh_sftp:write 的 Unicode 問題。

    自有 ID:OTP-16377

改進與新功能

  • 對實驗性的 ssh_dbg 工具的內部 API 進行了變更。

    自有 ID:OTP-16353

  • 新函數 ssh:set_sock_opts/2ssh:get_sock_opts/2 設定和讀取底層 TCP 資料流的選項值。

    自有 ID:OTP-16485

Ssh 4.8.2

已修正的錯誤和故障

  • 修正了如果以 iolist() 作為輸入資料,ssh_connection:send 可能會分配大量記憶體的問題。

    自有 ID:OTP-16373

  • 安全的 atom 轉換。

    自有 ID:OTP-16375

  • 新增了常數時間比較。

    自有 ID:OTP-16376

Ssh 4.8.1

已修正的錯誤和故障

  • 當字元插入字串中,使得最後的字元嘗試換行時,ssh cli(例如 shell)伺服器的行為很奇怪。

    自有 ID:OTP-14849 輔助 ID:ERL-545

  • 如果 OTP SSH 伺服器正在處理「exec」請求,並且執行的程式碼使用 Erlang standard_io 進行輸入/輸出,則 I/O 會錯誤地由伺服器的群組領導者處理,因此 I/O 會出現在伺服器的 Erlang shell 中(如果有的話)。因此,用戶端的使用者看不到該 I/O。

    現在已修正此問題,因此客戶端(例如 ssh OS shell 命令)會處理 I/O。使用者可以透過在終端機上寫入,將輸入傳送到伺服器端的 exec 處理程式碼,而伺服器端的輸出(例如來自 io:format)則會顯示在終端機上,而不僅僅是功能結果。

    注意 1:以舊的、未公開的方式指定自訂 exec 處理程式的伺服器,其執行的 exec 請求不會變更。變更的只有兩種情況:伺服器的 'exec' 選項要麼

    1. 未指定(即使用預設 shell),要麼
    2. 具有 {direct, fun(...) -> ... end} 的值格式。

    注意 2:先前在客戶端,結果和錯誤報告會附加換行標記。現在已移除這些標記,並且錯誤報告已稍微增強。

    技術細節:伺服器的裝置 standard_input 會接收來自 exec 請求通道的資料事件,而裝置 standard_output 則會透過該通道的資料事件將其資料傳送到客戶端。結果是 standard_io 現在由客戶端的群組領導者執行。

    自身 ID:OTP-15417 輔助 ID:OTP-16108

  • 當 ssh:shell/1,2,3 函式返回時,會使連線保持開啟。現在已修正此洩漏問題。

    自身 ID:OTP-16047

  • 已修正 Erlang SSH 伺服器在 exec 請求的某些錯誤上,可能會返回狀態碼 4294967295 而非 255 的問題。

    自身 ID:OTP-16123

改進與新功能

  • ssh_sftp/ssh_xfer 的內部簡化

    自身 ID:OTP-15972

  • 使用者指南中關於 一次性執行 的文件已更新,並提供更多範例。

    自身 ID:OTP-16108 輔助 ID:OTP-15417

  • 新的值 'disabled' 已引入 SSH 守護程式選項 'exec' 和 'shell' 中。先前它們缺乏明確停用它們的方式。

    自身 ID:OTP-16113

  • 為了與舊版對等點相容,已加入舊的演算法 'aes192_cbc'、'aes256_cbc' 和 'hmac-sha1-96'。

    現在不建議使用 MAC 'hmac-sha1-96',因此必須明確啟用。例如,使用選項值 {modify_algorithms, [{append, [{mac,['hmac-sha1-96']}]}]}

    自身 ID:OTP-16170

Ssh 4.8

已修正的錯誤和故障

  • 修正守護程式選項 subsystems 的錯誤類型定義。

    自身 ID:OTP-15820

  • 修正如果在階段初期設定階段發生問題,可能會導致 SSH 記錄崩潰的問題。

    自身 ID:OTP-15962 輔助 ID:ERL-990

改進與新功能

  • 模組 ssh_connection、ssh_sftp 和 ssh_sftpd 的文件現在從 -spec:s 產生。

    自身 ID:OTP-15395

  • 內部清理,包括移除內部檔案 ssh_userauth.hrl

    自身 ID:OTP-15876 輔助 ID:PR-2255, PR-2256

  • 移除 ssh.hrl 中未使用的定義。

    自身 ID:OTP-15929 輔助 ID:PR-2297

  • 移除內部 #connection{} 記錄中未使用的欄位。

    自身 ID:OTP-15984

  • 若要從例如 ssh:connect/3 取得 connection_ref() 的資訊,先前只有一個函式 ssh:connection_info/2 可用。此票證新增 ssh:connection_info/1,此函式會返回所有資訊。

    對於使用例如 ssh:daemon/2 啟動的守護程式(伺服器),可以使用函式 ssh:daemon_info/1 返回所有資訊。此票證新增 ssh:daemon_info/2,此函式只會返回第二個參數中指定的資訊。

    連線和守護程式的資訊現在也包含項目 'options'。只會返回那些沒有預設值的選項。

    對於連線,也加入了項目 'algorithms' 和 'channels'。

    自身 ID:OTP-16040

Ssh 4.7.7

改進與新功能

  • SSH 使用新的加密 API。

    自身 ID:OTP-15673

Ssh 4.7.6.6

已修正的錯誤和故障

  • 當在先前有通道的空連線上,通道在逾時時間內開啟時,未取消 idle_time 計時器。

    自身 ID:OTP-17279

Ssh 4.7.6.5

已修正的錯誤和故障

  • 修正解碼器錯誤。

    自身 ID:OTP-16904

Ssh 4.7.6.4

已修正的錯誤和故障

  • 重新協商金鑰決策和 Socket 關閉之間可能存在的危害。

    自有 ID:OTP-16462 輔助 ID:ERIERL-464

Ssh 4.7.6.3

已修正的錯誤和故障

  • 修正了如果以 iolist() 作為輸入資料,ssh_connection:send 可能會分配大量記憶體的問題。

    自有 ID:OTP-16373

  • 安全的 atom 轉換。

    自有 ID:OTP-16375

  • 新增了常數時間比較。

    自有 ID:OTP-16376

Ssh 4.7.6.2

已修正的錯誤和故障

  • 當字元插入字串中,導致最後的字元嘗試換行時,ssh cli(例如 shell)伺服器的行為很奇怪。

    自有 ID:OTP-14849 輔助 ID:ERL-545

Ssh 4.7.6.1

已修正的錯誤和故障

  • 修正如果在階段初期設定階段發生問題,可能會導致 SSH 記錄崩潰的問題。

    自身 ID:OTP-15962 輔助 ID:ERL-990

Ssh 4.7.6

改進與新功能

  • 當 SSH 伺服器在新 TCP 連線上收到第一個訊息,而且該訊息不是預期的訊息時,收到的訊息的前 64 個位元組現在會傾印在報告協定錯誤的資訊報告中。

    這有助於偵錯誰傳送了錯誤的訊息,或偵測可能的連接埠掃描。

    自身 ID:OTP-15772

Ssh 4.7.5

已修正的錯誤和故障

  • 在 OTP-21 中遺失了回呼 ssh_channel:init/1

    自身 ID:OTP-15762

  • 如果客戶端連線到已開啟的 Socket 上的伺服器,accept_callback 選項中的回呼 fun(PeerName,FingerPrint) 會將本機名稱傳遞到引數 PeerName 中,而非遠端名稱。

    自身 ID:OTP-15763

Ssh 4.7.4

已修正的錯誤和故障

  • SSH sftp 守護程式現在接受根據錯誤的 sftp 版本編碼的 SSH_FXP_STAT 訊息。某些客戶端會傳送此類訊息。

    自身 ID:OTP-15498 輔助 ID:ERL-822, PR-2077

Ssh 4.7.3

已修正的錯誤和故障

  • 修正 ssh:daemon 呼叫失敗時的連接埠洩漏問題。

    自身 ID:OTP-15397 輔助 ID:ERL-801

Ssh 4.7.2

已修正的錯誤和故障

  • 修正與較新 OpenSSH 的不相容性。先前版本 7.8 及更新版本可能會導致 Erlang SSH 退出。

    自身 ID:OTP-15413

  • ssh 守護程式的 'exec' 選項在文件中格式錯誤。

    自身 ID:OTP-15416

改進與新功能

  • 新增公鑰方法 ssh-ed25519 和 ssh-ed448。

    在 OTP 應用程式 crypto 下,需要 OpenSSL 1.1.1 或更高版本作為 cryptolib。

    自身 ID:OTP-15094 輔助 ID:OTP-15419

  • SSH 屬性測試現在已改編為 PropEr 測試工具。

    自身 ID:OTP-15312

  • 「使用者」一詞未在 SSH 應用程式中記錄。在使用者手冊中新增了一個包含術語的新章節,其中定義了「使用者」一詞。

    也新增了關於模組 ssh_file 的參考手冊頁面。這是使用者金鑰、主機金鑰等預設回呼模組。

    自身 ID:OTP-15314

  • 主機和使用者金鑰檢查更加穩健。

    自身 ID:OTP-15424

Ssh 4.7.1

改進與新功能

  • 使用用於循環追蹤緩衝區的 API 擴充了未公開的 ssh_dbg 偵錯模組。這使得記錄偵測到錯誤之前的最後一個低階事件變得容易。它旨在解決困難的錯誤。

    自身 ID:OTP-15020

  • 實作了金鑰交換方法 'curve25519-sha256@libssh.org''curve25519-sha256''curve448-sha512'。最後兩個定義在 https://tools.ietf.org/html/draft-ietf-curdle-ssh-curves 中。

    它們都取決於使用 OpenSSL 1.1.1 或更高版本作為 cryptolib。

    自身 ID:OTP-15133 輔助 ID:OTP-15240

  • 如果使用 OpenSSL 1.1.1 或更高版本作為 cryptolib,現在支援密碼 'chacha20-poly1305@openssh.com'。

    自身 ID:OTP-15209 輔助 ID:OTP-15164

Ssh 4.7

已修正的錯誤和故障

  • 如果重新啟動守護程式連接埠接聽程式,如果時間不湊巧,可能會因為 eaddrinuse 而失敗。現在它會重試,並在失敗前數次以指數方式回退接聽程式重新啟動。

    自身 ID:OTP-14955

  • 通道回呼模組始終在呼叫終止時,以模組名稱作為原因。現在它將取得適當的原因,通常為 'normal'。

    自身 ID:OTP-15084

改進與新功能

  • 選項 exec 定義了新的選項值,使其更容易實作自己的 exec 伺服器。

    實作處理 'exec' 請求的守護進程的選項 exec 已經存在很久,但一直沒有文件記錄。舊的未記錄值及其行為保持兼容性,但錯誤訊息已更改並以 "stderror" 文字發送。

    *潛在的不相容性*

    自身 ID:OTP-14851

  • 更新了 ssh_connection:shell/2 的文件。

    自身 ID:OTP-14880

  • 實驗性的 ssh_dbg 模組已完全重寫。其目的是使在已部署系統上的追蹤和除錯更容易。

    自身 ID:OTP-14896

  • SSH 監管器結構已略作更改。如果有開啟的連線,這使得停止 ssh 應用程式的速度明顯加快。這對於例如重新啟動非常重要。

    自身 ID:OTP-14988

  • SSH 中的類型規範已完全重做,以下類型已重新命名

    ssh:ssh_connection_ref() 已變更為 ssh:connection_ref(),

    ssh:ssh_daemon_ref() 已變更為 ssh:daemon_ref(),

    ssh:ssh_channel_id() 已變更為 ssh:channel_id()

    *潛在的不相容性*

    自身 ID:OTP-15002 輔助 ID:OTP-15030

  • SSH 中的內部計時器處理現在基於 gen_statem 計時器。

    自身 ID:OTP-15019

  • 移除未記錄且未使用的模組 ssh_client_key.erlssh_server_key.erl

    自身 ID:OTP-15028

  • 參考手冊頁面已部分更新。

    ssh 頁面現在從規格和類型產生,已重組並部分重新措辭。

    ssh_channel、ssh_connection、ssh_client_key_api、ssh_server_key_api 和 ssh_sftp 頁面已更新連結、正確的類型名稱和一些小的變更。

    自身 ID:OTP-15030 輔助 ID:OTP-15002

  • 行為 ssh_channelssh_daemon_channel 分別重新命名為 ssh_client_channelssh_server_channel

    舊模組保留以實現兼容性,但在更新引用它們的回呼模組時應盡可能替換。

    自身 ID:OTP-15041

  • 新的通道測試套件。

    自身 ID:OTP-15051

  • rekey_limit 選項現在可以設定最大時間以及先前設定的最大資料量。

    自身 ID:OTP-15069 輔助 ID:ERL-617

  • 將進程退出監管從連結變更為監視器。

    自身 ID:OTP-15082

  • 更好地處理行為不當的通道回呼模組。

    自身 ID:OTP-15083

  • 產生了一個新的模數檔案。此檔案用於 SSH 中建議的 diffie-hellman-group-exchange-sha256 金鑰交換演算法。

    自身 ID:OTP-15113

Ssh 4.6.9.7

已修正的錯誤和故障

Ssh 4.6.9.6

已修正的錯誤和故障

  • 修正了如果以 iolist() 作為輸入資料,ssh_connection:send 可能會分配大量記憶體的問題。

    自有 ID:OTP-16373

  • 安全的 atom 轉換。

    自有 ID:OTP-16375

  • 新增了常數時間比較。

    自有 ID:OTP-16376

Ssh 4.6.9.5

已修正的錯誤和故障

  • 當字元插入字串中,導致最後的字元嘗試換行時,ssh cli(例如 shell)伺服器的行為很奇怪。

    自有 ID:OTP-14849 輔助 ID:ERL-545

Ssh 4.6.9.4

已修正的錯誤和故障

  • 如果客戶端連線到已開啟的 Socket 上的伺服器,accept_callback 選項中的回呼 fun(PeerName,FingerPrint) 會將本機名稱傳遞到引數 PeerName 中,而非遠端名稱。

    自身 ID:OTP-15763

Ssh 4.6.9.3

已修正的錯誤和故障

  • 修正 ssh:daemon 呼叫失敗時的連接埠洩漏問題。

    自身 ID:OTP-15397 輔助 ID:ERL-801

Ssh 4.6.9.2

已修正的錯誤和故障

  • 修正與較新 OpenSSH 的不相容性。先前版本 7.8 及更新版本可能會導致 Erlang SSH 退出。

    自身 ID:OTP-15413

Ssh 4.6.9.1

已修正的錯誤和故障

  • 如果在長時間檔案傳輸期間終止非 OTP 的 sftp 伺服器,SFTP 用戶端會報告錯誤原因 ""

    現在,如果伺服器的原因為空,則訊號名稱(例如 "KILL")將作為錯誤原因。

    文件也缺少關於此類錯誤的類型資訊。

    自身 ID:OTP-15148 輔助 ID:ERIERL-194

  • 修復 sftp 協定版本 4 的 ssh_sftp 解碼錯誤

    自身 ID:OTP-15149 輔助 ID:ERIERL-199

Ssh 4.6.9

已修正的錯誤和故障

  • 對於遵循 RFC 4419 第 00 版草案的用戶端(例如 PuTTY),主機金鑰雜湊計算錯誤

    自身 ID:OTP-15064

  • 重新協商在某些狀態下可能會失敗

    自身 ID:OTP-15066

Ssh 4.6.8

已修正的錯誤和故障

  • 如果告知 ssh_sftp 伺服器 (執行版本 6) 移除實際上是目錄的檔案,則可能會失敗。

    自身 ID:OTP-15004

  • 修正接收到 {'EXIT',_,normal} 訊息時,ssh 伺服器罕見的錯誤關閉問題。

    自身 ID:OTP-15018

Ssh 4.6.7

已修正的錯誤和故障

  • 修復 ssh.hrl 中的錯誤規格:double_algs()

    自身 ID:OTP-14990

Ssh 4.6.6

已修正的錯誤和故障

  • 消除當通道關閉且在至少一秒的時間間隔後嘗試在該通道上執行操作時的封鎖風險。

    自身 ID:OTP-14939

改進與新功能

  • 新增 ssh_compat_SUITE。

    此套件包含許多主要與 OpenSSH 進行互通性測試的項目。這些測試會啟動具有不同 OpenSSH 和 OpenSSL/LibreSSLcryptolib 版本的 Docker 容器,並執行許多支援的演算法測試。

    所有登入方法和所有使用者的公鑰類型都針對用戶端和伺服器進行測試。

    針對用戶端和伺服器,所有 kex、密碼、主機金鑰、mac 和壓縮的演算法都使用許多 exec 和 sftp 測試進行測試。

    自身 ID:OTP-14194 輔助 ID:OTP-12487

  • 當啟用使用者定義的 shell 時,預設的 exec 會被停用。

    自身 ID:OTP-14881

Ssh 4.6.5

已修正的錯誤和故障

  • 調整監管器逾時

    自身 ID:OTP-14907

  • 移除慢速進程退出時的 ERROR 訊息

    自身 ID:OTP-14930

改進與新功能

  • 新增選項 save_accepted_hostssh:connection。如果此選項設定為 false,則會禁止將主機金鑰儲存到例如 known_hosts 檔案。

    自身 ID:OTP-14935

Ssh 4.6.4

已修正的錯誤和故障

  • 修復 OpenSSH 7.2(及更新版本)用戶端在 rsa-sha-256/512 使用者的公鑰中使用 sha1 而不是 sha2 的問題。

    自身 ID:OTP-14827 輔助 ID:ERL-531

Ssh 4.6.3

已修正的錯誤和故障

  • ecdsa 公鑰缺少密碼選項。

    自身 ID:OTP-14602

改進與新功能

  • 已強化主機和使用者公鑰處理,以便錯誤的外掛程式無法傳遞錯誤類型的金鑰。

    在啟動時和每次接受時,對伺服器可用的主機金鑰類型進行更好的檢查。

    在連線時,對用戶端可用的使用者公鑰類型進行更好的檢查。

    自身 ID:OTP-14676 輔助 ID:ERIERL-52, OTP-14570

  • SSH 現在可以從儲存在引擎中的私鑰中獲取主機金鑰。有關引擎的詳細資訊,請參閱密碼應用程式。

    自身 ID:OTP-14757

Ssh 4.6.2

已修正的錯誤和故障

  • 在 hello 字串的結尾移除了尾隨的空白。這導致與其他一些 ssh 實作(例如 Solaris 11 上的 OpenSSH 7.3p1)的互通性問題

    自身 ID:OTP-14763 輔助 ID:ERIERL-74

  • 修正了用戶端立即關閉的 tcp 連線 (SYN、SYNACK、ACK、RST) 可能會處於殭屍狀態的問題。

    自身 ID:OTP-14778 輔助 ID:ERIERL-104

Ssh 4.6.1

已修正的錯誤和故障

  • 修正了損壞的列印輸出

    自身 ID:OTP-14645

改進與新功能

  • 如果對等端是 OpenSSH 6.2,已知在某些情況下使用 aes_gcm 密碼時會出現問題,則會停用 aes_gcm 密碼。

    自身 ID:OTP-14638

Ssh 4.6

已修正的錯誤和故障

  • 啟用 ssh_io 模組,使其在讀取 standard_io 時也能接受二進位值,而不是停留在接收子句中。

    自有 ID:OTP-14506 輔助 ID:PR1503

  • 先前,回應用於 ssh_sftp:read_file_info/2 函數的檔案擁有者存取權限一律為 read_write。修正後,檔案擁有者存取權限的實際值會被加入到回傳的記錄中。該值是從檔案模式值計算而得。

    自有 ID:OTP-14550 輔助 ID:PR1533

改進與新功能

  • 實作了一個新的選項 modify_algorithms。它能夠指定對預設演算法列表的變更。請參閱參考手冊和 SSH 使用者指南中的「在 SSH 中設定演算法」章節。

    自有 ID:OTP-14568

Ssh 4.5.1

已修正的錯誤與故障

  • 所有未知的選項都會被傳送到傳輸處理器,無論其類型為何。

    自有 ID:OTP-14541 輔助 ID:EIRERL-63

Ssh 4.5

改進與新功能

  • 重新編寫了 SSH 選項的內部處理方式。

    先前,如果將用戶端選項提供給伺服程式,反之亦然,則不會進行檢查。現在已修正此問題。如果您的程式碼在啟動伺服程式的呼叫中包含例如僅用戶端選項,則呼叫將會失敗。

    *潛在的不相容性*

    自有 ID:OTP-12872

  • 金鑰交換演算法的現代化。有關討論,請參閱 draft-ietf-curdle-ssh-kex-sha2。

    移除了一個過時的弱演算法,並新增了更強大的替代方案,以保持與其他現代 SSH 用戶端和伺服器的互通性。演算法的預設順序也已調整。

    已停用:現在不安全的金鑰交換 diffie-hellman-group1-sha1 預設未啟用,但可以使用 preferred-algorithms 選項啟用。

    新增:新增並預設啟用新的更強大的金鑰交換 diffie-hellman-group16-sha512diffie-hellman-group18-sha512diffie-hellman-group14-sha256

    然而,對於與缺乏現代金鑰交換替代方案的舊用戶端和伺服器的相容性,仍預設啟用基於有問題的 [RFC 6194] sha1 的演算法 diffie-hellman-group-exchange-sha1diffie-hellman-group14-sha1。當 draft-ietf-curdle-ssh-kex-sha2 成為 RFC 時,這些基於 sha1 的演算法和 diffie-hellman-group1-sha1 將會被 IETF 棄用。屆時它們可能會從 Erlang/OTP 的預設列表中移除。

    *潛在的不相容性*

    自有 ID:OTP-14110

  • 透過使用映射現代化 sftp 的內部表示法。

    自有 ID:OTP-14117

  • 實作了擴充協商機制和 draft-ietf-curdle-ssh-ext-info-05 中的擴充 server-sig-algs

    實作了相關的 draft-ietf-curdle-rsa-sha2-05,並引入了簽名演算法 rsa-sha2-256rsa-sha2-512

    自有 ID:OTP-14193

  • 澄清了 ssh_sftp:start_channel 文件中 'timeout' 和 'connect_timeout' 的處理方式。

    自有 ID:OTP-14216

  • 函數 ssh:connectssh:shellssh:start_channel 現在接受 IP 元組作為 Host 目的地引數。

    自有 ID:OTP-14243

  • 函數 ssh:daemon_info/1 現在會以屬性列表的形式傳回 Host 和 Profile 以及 Port 資訊。

    自有 ID:OTP-14259

  • 移除了在 18.2 中已棄用的選項 public_key_alg。請改用 pref_public_key_algs

    *潛在的不相容性*

    自有 ID:OTP-14263

  • 關於伺服程式啟動,重新架構了 SSH 應用程式。未描述矛盾的 Host 引數和 ip 選項的解析。當在 Host 引數或 ip 選項中使用 'any' 值時,也存在奇怪的邊緣情況。現在已(希望)解決此問題,但可能會導致使用 Hostip 選項的程式碼不相容。已新增值 'loopback',以正確命名這些位址。

    *潛在的不相容性*

    自有 ID:OTP-14264

  • 重新架構了監管程式碼。稍微微調了監聽 IP-Port-Profile 三元組的命名,以改善 OTP-14264 解決的奇怪邊緣情況的一致性。

    自有 ID:OTP-14267 輔助 ID:OTP-14266

  • 現在可以在伺服程式中使用 idle_time 選項。

    自有 ID:OTP-14312

  • 為 IETF-CURDLE 擴充協商 (ext-info) 新增了測試案例。

    自有 ID:OTP-14361

  • IETF-CURDLE 擴充 server-sig-algs 的測試案例,包含 rsa-sha2-*

    自有 ID:OTP-14362 輔助 ID:OTP-14361

  • 現在也可以在用戶端中使用 auth_methods 選項,以選擇要使用哪些驗證選項及其順序。

    自有 ID:OTP-14399

  • 檢查儲存在檔案中的 ECDSA 公鑰 (ecdsa-sha2-nistp*) 是否具有正確的大小。

    自有 ID:OTP-14410

Ssh 4.4.2.4

已修正的錯誤與故障

  • 修正接收到 {'EXIT',_,normal} 訊息時,ssh 伺服器罕見的錯誤關閉問題。

    自身 ID:OTP-15018

  • 對於遵循 RFC 4419 第 00 版草案的用戶端(例如 PuTTY),主機金鑰雜湊計算錯誤

    自身 ID:OTP-15064

  • 重新協商在某些狀態下可能會失敗

    自身 ID:OTP-15066

Ssh 4.4.2.3

已修正的錯誤與故障

  • 如果告知 ssh_sftp 伺服器 (執行版本 6) 移除實際上是目錄的檔案,則可能會失敗。

    自身 ID:OTP-15004

Ssh 4.4.2.2

改進與新功能

  • 當啟用使用者定義的 shell 時,預設的 exec 會被停用。

    自身 ID:OTP-14881

Ssh 4.4.2.1

已修正的錯誤與故障

  • 在 hello 字串的結尾移除了尾隨的空白。這導致與其他一些 ssh 實作(例如 Solaris 11 上的 OpenSSH 7.3p1)的互通性問題

    自身 ID:OTP-14763 輔助 ID:ERIERL-74

Ssh 4.4.2

已修正的錯誤與故障

  • 如果監聽 IP 不是 'any',則 ssh:daemon_info/1 會崩潰。

    自有 ID:OTP-14298 輔助 ID:seq13294

Ssh 4.4.1

已修正的錯誤與故障

  • 修正開啟連線時的錯誤。如果 TCP 設定失敗,在某些情況下不會產生錯誤傳回值。

    自有 ID:OTP-14108

  • 減少解密錯誤時的資訊洩漏。

    自有 ID:OTP-14109

  • 金鑰交換演算法 diffie-hellman-group-exchange-sha* 有一個伺服器選項 {dh_gex_limits,{Min,Max}}。如果使用了該選項,並且 MinMax 與從用戶端取得的對應值不同,則用戶端會發生主機金鑰簽名驗證錯誤。

    現在已修正此錯誤。

    自有 ID:OTP-14166

  • 如果同時提供了 root_dircwd,sftpd 伺服器現在會正確使用它們來解析檔案路徑。cwd 的處理方式也已修正。

    感謝 kape1395!

    自有 ID:OTP-14225 輔助 ID:PR-1331, PR-1335

  • Ssh_cli 使用了一個無法正確處理非 utf8 unicode 的函數。

    自有 ID:OTP-14230 輔助 ID:ERL-364

改進與新功能

  • 最佳化了金鑰交換演算法 diffie-hellman-group-exchange-sha* 的實作,對於最慢(= 最大且最安全)的群組大小,效能提升最高達 11 倍。

    自有 ID:OTP-14169 輔助 ID:seq-13261

  • ssh 主機金鑰指紋產生現在也會取得演算法列表,並傳回對應的指紋列表。請參閱 public_key:ssh_hostkey_fingerprint/2ssh:connect 中的 silently_accept_hosts 選項。

    自有 ID:OTP-14223

Ssh 4.4

已修正的錯誤與故障

  • 如果將 packet_size 設定為大於 64k,使用 sftp 用戶端讀取檔案可能會遺失資料。現在已修正此問題,如果存在資料遺失的風險,則會靜默降低 packet_size。

    自有 ID:OTP-13857 輔助 ID:ERL-238, OTP-13858

  • 當使用者定義的 SSH shell REPL 程序以正常原因結束時,SSH 通道回呼模組應向 SSH 用戶端報告成功的結束狀態。這為 SSH 用戶端提供了一種簡單的方法來檢查已執行命令是否成功完成。(感謝 isvilen)

    自有 ID:OTP-13905 輔助 ID:PR-1173

改進與新功能

  • 延伸了 ssh:connectsilently_accept_hosts 選項,讓用戶端可以檢查 SSH 主機金鑰指紋字串。請參閱 SSH 的參考手冊。

    自有 ID:OTP-13887 輔助 ID:OTP-13888

Ssh 4.3.6

已修正的錯誤與故障

  • 解決了與 OpenSSH 用戶端的重新協商問題。

    自有 ID:OTP-13972

Ssh 4.3.5

已修正的錯誤與故障

  • 如果用戶端非法傳送資訊行,然後立即關閉 TCP 連線,則會引發 badmatch 例外狀況。

    自有 ID:OTP-13966

Ssh 4.3.4

已修正的錯誤與故障

  • 間歇性的 ssh 錯誤報告提及 nonblocking_sender

    自有 ID:OTP-13953 輔助 ID:seq13199

Ssh 4.3.3

已修正的錯誤與故障

  • 處理所有可能被解讀為 {error, closed} 的退出值。若未能正確處理,可能會導致 ssh 應用程式的使用者發生意料之外的崩潰。

    內部 ID:OTP-13932 輔助 ID:seq13189

Ssh 4.3.2

已修正的錯誤與故障

  • 已建立的客戶端連線升級可能會崩潰,因為 ssh 客戶端監管器的子節點類型錯誤。此問題已修正。

    內部 ID:OTP-13782 輔助 ID:seq13158

  • 在公開金鑰授權的早期階段部分檢查公開金鑰。

    內部 ID:OTP-13847 輔助 ID:defensics-ssh3.1.0-190243,205277,219318

  • 修正 ECDSA(橢圓曲線公開金鑰)的 SHA 處理。

    內部 ID:OTP-13850 輔助 ID:defensics-ssh3.1.0-214168

  • 修正了測試套件以及 Codenomicon/Defensics 發現的問題:- 將最大隨機填充減少至 15 個位元組 (Codenomicon/Defensics) - 不完整的 PDU 處理 (Codenomicon/Defensics) - 測試套件中的 badmatch - 非阻塞傳送修正了 ssh_connection_SUITE:interrupted_send 中的死鎖問題。

    內部 ID:OTP-13854

  • 當接收到 TCP 關閉時,現在會通知呼叫者。

    內部 ID:OTP-13859 輔助 ID:seq13177

改進與新功能

  • 使用 application:ensure_all_started/2 而非硬式編碼依賴項。

    內部 ID:OTP-13843 輔助 ID:PR-1147

Ssh 4.3.1

已修正的錯誤與故障

  • SSH 客戶端不再重試在 ssh:connect 等函數中作為選項提供的錯誤密碼。

    內部 ID:OTP-13674 輔助 ID:TR-HU92273

  • 移除客戶端和伺服器在同一個節點上執行時,特定時間序列中可能發生的掛起風險。

    內部 ID:OTP-13715

Ssh 4.3

改進與新功能

  • 由 gen_tcp 建立並連線的 Socket 現在可以用作 ssh:connect、ssh:shell、ssh_sftp:start_channel 和 ssh:daemon 的輸入。

    內部 ID:OTP-12860

  • 主要在訊息編碼方面進行了一些時間優化。

    內部 ID:OTP-13131

  • 透過設定新的封包和視窗大小來優化 sftp 客戶端的時間。

    內部 ID:OTP-13175

  • SSH 中的 ssh_connection_handler 模組已變更,現在使用新的行為 gen_statem

    該模組可以用作 gen_statem 回呼模組的範例,但需注意:此 ssh 的變更僅是從 gen_fsm 直接移植到 gen_statem,並進行了一些程式碼清理。由於狀態機和狀態回呼幾乎沒有變更,因此 ssh 模組並未展示新行為的全部潛力。

    「新」狀態機使用複合狀態。ssh 伺服器和客戶端狀態機非常相似,但存在差異。使用 gen_fsm 時,使用者資料中有標誌,實際上實現了「子狀態」。現在使用 gen_statem,這些子狀態在狀態名稱中明確表示,例如狀態 userauth 和二進制 role 標誌變為兩個狀態名稱 {userauth, server}{userauth, client}

    內部 ID:OTP-13267

  • 說明了從 ssh_sftp API 函數傳回的 {error, Reason} 元組。

    內部 ID:OTP-13347 輔助 ID:ERL-86

  • 在 ssh 中新增 -spec。

    內部 ID:OTP-13479

  • 現在可以使用 Port=0 呼叫 ssh:daemon/{1,2,3}。這會讓守護程式在開啟監聽 TCP 連接埠之前選擇一個可用的連接埠。若要在呼叫之後找到此連接埠號碼,請使用新的函數 ssh:daemon_info/1。請參閱參考手冊以取得詳細資訊。

    內部 ID:OTP-13527

Ssh 4.2.2.6

已修正的錯誤與故障

  • 修正接收到 {'EXIT',_,normal} 訊息時,ssh 伺服器罕見的錯誤關閉問題。

    自身 ID:OTP-15018

Ssh 4.2.2.5

改進與新功能

  • 當啟用使用者定義的 shell 時,預設的 exec 會被停用。

    自身 ID:OTP-14881

Ssh 4.2.2.4

已修正的錯誤與故障

  • 在 hello 字串的結尾移除了尾隨的空白。這導致與其他一些 ssh 實作(例如 Solaris 11 上的 OpenSSH 7.3p1)的互通性問題

    自身 ID:OTP-14763 輔助 ID:ERIERL-74

Ssh 4.2.2.3

已修正的錯誤與故障

  • 金鑰交換演算法 diffie-hellman-group-exchange-sha* 有一個伺服器選項 {dh_gex_limits,{Min,Max}}。如果使用了該選項,並且 MinMax 與從用戶端取得的對應值不同,則用戶端會發生主機金鑰簽名驗證錯誤。

    現在已修正此錯誤。

    自有 ID:OTP-14166

改進與新功能

  • 金鑰交換演算法 diffie-hellman-group-exchange-sha* 經過優化,最慢的(= 最大且最安全的)演算法效能提升了高達 11 倍。

    自有 ID:OTP-14169 輔助 ID:seq-13261

Ssh 4.2.2.2

已修正的錯誤與故障

  • 已建立的客戶端連線升級可能會崩潰,因為 ssh 客戶端監管器的子節點類型錯誤。此問題已修正。

    內部 ID:OTP-13782 輔助 ID:seq13158

Ssh 4.2.2.1

已修正的錯誤與故障

  • SSH 客戶端不再重試在 ssh:connect 等函數中作為選項提供的錯誤密碼。

    內部 ID:OTP-13674 輔助 ID:TR-HU92273

Ssh 4.2.2

已修正的錯誤與故障

  • 更正 ssh_sftp:position/4 的文件。

    感謝 Rabbe Fogelholm。

    內部 ID:OTP-13305 輔助 ID:ERL-87

Ssh 4.2.1

已修正的錯誤與故障

  • 當伺服器在成功驗證後繼續要求輸入零個以上的密碼時,Erlang 客戶端中的驗證方法「keyboard-interactive」失敗。

    內部 ID:OTP-13225

Ssh 4.2

已修正的錯誤與故障

  • ssh_file 中更好的錯誤處理。當 NFS 掛載的檔案被 ssh_file 開啟,然後在讀取期間被遠端刪除時,會發生一些罕見的錯誤。這導致了一個無限迴圈。

    該錯誤現已修正。

    內部 ID:OTP-12699 輔助 ID:OTP-11688

  • 修正了壓縮演算法 zlib@openssh.com 中的一個錯誤。

    內部 ID:OTP-12759

  • 現在可以使用選項 fd 中給定的檔案描述元啟動多個守護程式。當然,每個守護程式都必須有唯一的檔案描述元。

    內部 ID:OTP-12966 輔助 ID:seq12945

  • 修正了導致選項 dh_gex_limit 被忽略的錯誤。

    內部 ID:OTP-13029

  • 修正了 ssh:connect 選項 pref_public_key_algs 指定使用者金鑰時的問題。

    內部 ID:OTP-13158

改進與新功能

  • ssh 參考手冊中的文件更新:應用程式文件檔案和 ssh_connection。

    內部 ID:OTP-12003

  • 授權階段已設為有狀態,以防止 ssh 處理以錯誤順序傳送的訊息。

    內部 ID:OTP-12787

  • 新增了對錯誤訊息長度和錯誤子欄位長度的測試案例。

    內部 ID:OTP-12792 輔助 ID:Codenomicon #5214, 6166

  • 實作了 ssh 的 'ecdsa-sha2-nistp256'、'ecdsa-sha2-nistp384' 和 'ecdsa-sha2-nistp521' 簽名演算法。請參閱 RFC 5656。

    內部 ID:OTP-12936

  • 實作了加密演算法 'aes192-ctr' 和 'aes256-ctr'。請參閱 RFC 4344。

    內部 ID:OTP-12939

  • 實作了加密和 mac AEAD_AES_128_GCM 和 AEAD_AES_256_GCM,但預設情況下未啟用。請參閱 SSH 應用程式參考手冊和 RFC5647 以取得詳細資訊。

    也實作了加密 aes128-gcm@openssh.com 和 aes256-gcm@openssh.com,並且在預設配置中可用。

    內部 ID:OTP-13018

  • ssh:daemon 選項 dh_gex_groups 已擴展為讀取使用者提供的 ssh moduli 檔案,其中包含產生器-模數對。該檔案採用 openssh 格式。

    內部 ID:OTP-13052 輔助 ID:OTP-13054

  • 現在有一個檔案 (public_key/priv/moduli) 列出大小-產生器-模數三元組。其目的是讓伺服器可以從預先產生的三元組清單中隨機選擇加密質數。這降低了對 diffie-hellman 協商進行某些攻擊的風險。

    請參閱參考手冊以取得 public_key:dh_gex_group/4,其中描述了此處理。

    ssh 伺服器 (ssh:daemon) 使用此功能。

    內部 ID:OTP-13054 輔助 ID:OTP-13052

  • ssh:daemon 選項 pwdfun 現在也接受 fun/4。這讓使用者可以 1) 以內建演算法以外的方式檢查使用者 ID-密碼,2) 實作每個使用者或來源 IP 或 IP+連接埠的速率限制,以及 3) 實作對行為不良的對等節點的封鎖。

    舊的 fun/2 仍然像以前一樣運作。

    內部 ID:OTP-13055 輔助 ID:OTP-13053

  • 現在有一個新選項可以讓伺服器限制 diffie-hellman 群組交換協商可用的模數大小範圍。請參閱 ssh:daemon/3 中的選項 {dh_gex_limits,{Min,Max}}

    內部 ID:OTP-13066

  • Ecdh 金鑰交換現在驗證 rfc5656 中定義的壓縮和未壓縮金鑰。

    內部 ID:OTP-13067

  • 已變更 .ssh 目錄的搜尋順序,因此會先嘗試 $HOME,再嘗試 init:get_argument(home)

    內部 ID:OTP-13109

  • sftp 接收視窗處理已最佳化,使其不會太頻繁地更新遠端端點。這使得「sftp mget」明顯更快。

    內部 ID:OTP-13130

  • 選項 key_cb 已擴展為接受一個可選清單,該清單會作為選項傳遞給回呼模組。使用此選項,可以根據連線的主機擁有不同的金鑰。另一種可能性是編寫一個從資料庫擷取金鑰等的回呼模組。

    感謝 Vipin Nair。

    內部 ID:OTP-13156

Ssh 4.1.3

已知錯誤與問題

  • 實作了 SSH_MSG_KEX_DH_GEX_REQUEST_OLD,使 PuTTY 可以與 erl 伺服器搭配使用。

    內部 ID:OTP-13140

Ssh 4.1.2

已修正的錯誤與故障

  • 將 1024 群組新增至金鑰群組交換群組的清單。

    內部 ID:OTP-13046

Ssh 4.1.1

改進與新功能

  • 新增選項 max_channels,限制接受具有活動伺服器端子系統的通道數量。

    內部 ID:OTP-13036

Ssh 4.1

已修正的錯誤與故障

  • 當金鑰交換階段找不到共同的演算法時,傳送可理解的斷線訊息。此外也新增了一些測試案例。

    內部 ID:OTP-11531

  • ssh_sftp:write_file 中的第三個參數現在再次接受 iolist。調整 Unicode 處理。

    內部 ID:OTP-12853,輔助 ID:seq12891

改進與新功能

  • ssh 測試套件重組和擴展的第一部分。

    內部 ID:OTP-12230

  • 實作金鑰交換演算法「ecdh-sha2-nistp256」、「ecdh-sha2-nistp384」和「ecdh-sha2-nistp521」。請參閱 RFC 5656。

    這大幅提高了安全性等級。

    內部 ID:OTP-12622,輔助 ID:OTP-12671、OTP-12672

  • 實作金鑰交換演算法「diffie-hellman-group14-sha1」。請參閱 RFC 4253。

    這提高了安全性等級。

    內部 ID:OTP-12671,輔助 ID:OTP-12672、OTP-12622

  • 實作金鑰交換演算法「diffie-hellman-group-exchange-sha1」和「diffie-hellman-group-exchange-sha256」。請參閱 RFC 4419。

    這提高了安全性等級。

    內部 ID:OTP-12672,輔助 ID:OTP-12671、OTP-12622

  • 根據 RFC 4253 第 6 節的建議,新增隨機長度的額外填充。

    內部 ID:OTP-12831

  • 用於低階協定測試的新測試程式庫。還有一個測試套件使用它進行一些初步測試。其目的是在此基礎上建立更多個別 ssh 訊息的測試。請參閱同一目錄中的 lib/ssh/test/ssh_trpt_test_lib.erlssh_protocol_SUITE.erl

    內部 ID:OTP-12858

  • 將 diffie-hellman-group-exchange-sha* 的預設值增加到 Min = 1024,N = 6144,Max = 8192。

    新增 6144 和 8192 位元預設 gex 群組。

    內部 ID:OTP-12937

  • 實作 mac 演算法「hmac-sha2-512」。請參閱 RFC 6668。

    內部 ID:OTP-12938

Ssh 4.0

已修正的錯誤與故障

  • 如果訊息在 packet_size = 0 的通道上傳送,則 Ssh 會當機。

    還為 ssh:daemon 引入了一個新選項:minimal_remote_max_packet_size。此選項設定 daemon 將接受來自用戶端的最小最大封包大小宣告。預設值為 0,以維持與 OpenSSH 和 rfc 的相容性。

    內部 ID:OTP-12645,輔助 ID:seq12816

  • 包含 rfc 4253 第 8 節中指定的 diffie-hellman 金鑰交換中的 'e' 和 'f' 參數的測試。

    內部 ID:OTP-12649

  • 修正了當傳輸了 rekey_limit 位元組(預設為 1GB)時,連線每分鐘重新金鑰,而不是在下一個傳輸的 'rekey_limit' 區塊之後重新金鑰的錯誤。

    感謝 Simon Cornish 的報告和修正!

    內部 ID:OTP-12692

  • 修正了當 {timeout, Timeout} 選項與 ssh_sftp:start_channel 一起使用時,導致 SFTP 連線總是失敗的錯誤。

    感謝 Simon Cornish

    內部 ID:OTP-12708

  • 修正各種 ssh 金鑰交換問題。

    感謝 Simon Cornish

    內部 ID:OTP-12760,輔助 ID:pull req 715

  • 選項 system_diruser_dir 假設該值是可讀取的目錄路徑。現在會提早檢查,因此 ssh:daemonssh:connect 會立即失敗並顯示錯誤訊息。

    內部 ID:OTP-12788

  • daemon 現在會檢查用戶端是否嘗試使用選項 auth_methods 中沒有的方法進行授權。

    內部 ID:OTP-12790

  • Disconnectfun 現在應在所有斷線時觸發。

    內部 ID:OTP-12811

改進與新功能

  • 在 ssh_auth.erl 和 ssh_message.erl 中更好地使用二進位匹配

    內部 ID:OTP-11697

  • 新的選項 'preferred_algorithms' 可用於 ssh:daemonssh:connect

    此選項定義在 ssh 協定的演算法協商階段呈現給對等點的演算法。

    預設清單可以從新的函式 ssh:default_algorithms/0 取得。

    *與已移除的未記錄選項 'role' 和 'compression' 不相容*

    內部 ID:OTP-12029

  • 內部群組到 user_drv 協定已變更為同步,以保證在回覆之前列印傳送到實作 user_drv 協定的程序的輸出。此協定由 standard_output 裝置和當做為用戶端的 ssh 應用程式使用。

    此變更將先前列印到 standard_io 和其他最終進入 user_drv 的裝置時的無限緩衝區變更為 1KB。

    *潛在的不相容性*

    內部 ID:OTP-12240

  • 如果 ssh_connection:subsystem/4 失敗,我們不希望當機,而是希望正常終止。

    內部 ID:OTP-12648,輔助 ID:seq12834

  • 用於 ssh:daemonssh:connect 的新選項 id_string,用於限制橫幅抓取嘗試。

    可能的值為:{id_string,string()}{id_string,random}。後者會讓 ssh 為每個新連線產生一個隨機的無意義 id 字串。

    內部 ID:OTP-12659

  • 為了讓 ssh daemon 可以在虛擬化環境中執行,其中可能有多個具有相同 ip 位址和埠的伺服器,我們新增了一個新的選項 profile。

    內部 ID:OTP-12675

  • 新增升級測試套件。

    內部 ID:OTP-12676

  • 用於處理 SSH_MSG_DEBUG 訊息列印的新選項。可以在選項中提供一個函式,每當收到 SSH_MSG_DEBUG 訊息時就會呼叫該函式。這讓使用者可以格式化列印輸出或直接捨棄它。

    內部 ID:OTP-12738,輔助 ID:seq12860

  • 測試案例改進和更正

    * 為伺服器端和用戶端新增 disconnectfun 選項的測試案例

    * 針對有時會失敗的慢速機器調整逾時測試案例

    內部 ID:OTP-12786

  • 選項 disconnectfun 現在可以在用戶端和伺服器端使用。

    內部 ID:OTP-12789

  • 用於處理未知訊息的 ssh:connect 和 ssh:daemon 的新選項 unknown_msgfun/2。透過此選項,可以在產生 INFO 日誌訊息之前攔截訊息。

    一個用途是篩選掉錯誤記錄器中不需要的訊息,作為資訊報告。這類訊息的一個例子是當連線具有 keep_alive 且對等點重新啟動時會收到的「etimedout」tcp 錯誤訊息。

    內部 ID:OTP-12813,輔助 ID:seq12881

Ssh 3.2.4

已修正的錯誤與故障

  • 如果 socket 意外關閉,則正常終止。

    內部 ID:OTP-12782

  • 使 Codenomicon Defensics 測試套件通過

    • 限制 kexinit 訊息中的演算法數量
    • 檢查 kexdh 中的 'e' 和 'f' 參數
    • 在伺服器端實作「keyboard-interactive」使用者驗證
    • 將純文字訊息傳回錯誤的版本交換訊息

    內部 ID:OTP-12784

Ssh 3.2.3

已修正的錯誤與故障

  • 用於處理 SSH_MSG_DEBUG 訊息列印的新選項。可以在選項中提供一個函式,每當收到 SSH_MSG_DEBUG 訊息時就會呼叫該函式。這讓使用者可以格式化列印輸出或直接捨棄它。

    內部 ID:OTP-12738,輔助 ID:seq12860

Ssh 3.2.2

改進與新功能

  • 用於 ssh:daemonssh:connect 的新選項 id_string,用於限制橫幅抓取嘗試。

    可能的值為:{id_string,string()}{id_string,random}。後者會讓 ssh 為每個新連線產生一個隨機的無意義 id 字串。

    內部 ID:OTP-12659

Ssh 3.2.1

已修正的錯誤與故障

  • 如果訊息在 packet_size = 0 的通道上傳送,則 Ssh 會當機。

    還為 ssh:daemon 引入了一個新選項:minimal_remote_max_packet_size。此選項設定 daemon 將接受來自用戶端的最小最大封包大小宣告。預設值為 0,以維持與 OpenSSH 和 rfc 的相容性。

    內部 ID:OTP-12645,輔助 ID:seq12816

Ssh 3.2

已修正的錯誤與故障

  • 如果在使用 ssh_connection.erl 中具有呼叫語意的函式時,通道被對等點關閉,則傳回 {error, closed}。記錄該函式可以傳回 {error, timeout | closed},而不僅僅是 ssh_request_status()

    內部 ID:OTP-12004

  • 當 ssh 交握耗時太長時,導致 ssh:connect 傳回 {error,int()} 而不是 {error,timeout} 的錯誤。

    內部 ID:OTP-12369

  • 文件修正。(感謝 Rabbe Fogelholm)

    內部 ID:OTP-12399

改進與新功能

  • 新增 ssh_connection:exec 的範例。

    內部 ID:OTP-12558

Ssh 3.1

已修正的錯誤與故障

  • 確保 ssh、ssl、eunit 和 otp_mibs 的清除規則實際上會移除產生的檔案。

    內部 ID:OTP-12200

  • 改進的屬性測試 (感謝 QuviQ 的 Thomas、John 和 Tobias)

    內部 ID:OTP-12256

  • 修正可能導致重新金鑰失敗的 renegotiate 錯字

    內部 ID:OTP-12277,輔助 ID:seq12736

  • 傳遞給 ssh_sftp:start_channel 的 {timeout, Timeout} 選項未應用於 SSH 協定的早期階段。此修補程式將 Timeout 傳遞給 ssh:connect。如果逾時發生在這些階段,則會傳回 {error, timeout}。(感謝 Simon Cornish)

    內部 ID:OTP-12306

改進與新功能

  • 新增 API 函式 ptty_alloc/3 和 ptty_alloc/4,以配置虛擬終端機。

    內部 ID:OTP-11542,輔助 ID:seq12493、OTP-11631

  • 支援在本機電腦上掛載的檔案系統以外的其他媒體上建立 tar 檔案。

    擴展了 erl_tar API,加入了 erl_tar:init/3,允許使用使用者提供的媒體儲存常式。新的函式 ssh_sftp:open_tar/3 中隱藏了一組專用於 SSH 的常式,簡化了在遠端 SSH 伺服器上建立 tar 壓縮檔的過程。

    erl_tar:add/3,4 中新增了分塊讀取檔案的選項,以便在小型嵌入式系統上節省記憶體。在這種情況下,可以指定從檔案讀取的切片大小。

    自身 ID: OTP-12180 輔助 ID: seq12715

  • 當對等方發送損壞的訊息時,總是發送 SSH_DISCONNECT 協定訊息。

    自身 ID: OTP-12185

  • 新增了用於函式的掛勾,這些函式可以變更從 erl_tar 發送到遠端站點的二進位檔案,以用於遠端 tar 檔案建立。詳情請參閱 ssh_sftp:open_tar/3,4。這些掛勾也可用於讀取在檔案解壓縮前需要轉換的遠端 tar 檔案。

    這些掛勾旨在用於 tar 檔案的加密和解密。我們致力於節省記憶體、磁碟和網路資源。

    自身 ID: OTP-12312 輔助 ID: OTP-12180

Ssh 3.0.8

修正的錯誤和故障

  • 修正了埠掃描後登入被阻止的問題。

    自身 ID: OTP-12247 輔助 ID: seq12726

Ssh 3.0.7

修正的錯誤和故障

  • 為 SFTP 新增選項 sftp_vsn。

    自身 ID: OTP-12227

改進和新功能

  • 修正了選項 user_interaction 以使其正常運作。當使用 SSH 鍵盤互動方法實作密碼驗證,且已提供密碼,因此我們不需要查詢使用者時,即使 user_interaction 選項設定為 false,連線也應該成功。

    自身 ID: OTP-11329 輔助 ID: seq12420, seq12335

Ssh 3.0.6

修正的錯誤和故障

  • 在預期 SSH 版本交換時,優雅地處理來自用戶端的錯誤資料。

    自身 ID: OTP-12157 輔助 ID: seq12706

  • 當重新啟動已使用 ssh:stop_listner/ [1,2] 停止的 SSH 精靈時,新的選項應取代舊的選項。

    自身 ID: OTP-12168 輔助 ID: seq12711

改進和新功能

  • SSH 現在具有 format_status 函式,可避免在錯誤記錄中列印敏感資訊。

    自身 ID: OTP-12030

已知錯誤和問題

  • 選項 parallel_login 無法使用值 true。所有登入都是循序的。

    自身 ID: OTP-12194

Ssh 3.0.5

修正的錯誤和故障

  • 當啟動 SSH 精靈並提供選項 {parallel_login, true} 時,驗證協商的逾時時間 ({negotiation_timeout, integer()}) 從未被移除。

    如果設定了 parallel_login,這會導致工作階段總是在逾時後終止。

    自身 ID: OTP-12057 輔助 ID: seq12663

改進和新功能

  • 警告:這是實驗性的功能,可能會在沒有事先警告的情況下消失或變更。

    為 common_test 新增了從 common_test 套件執行 Quickcheck 和 PropEr 測試的實驗性支援。請參閱新模組 ct_property_testing 的參考手冊。

    lib/{inet,ssh}/test/property_test 下新增了實驗性屬性測試。它們可以直接執行,或從 commont_test 套件 inet/ftp_property_test_SUITE.erlssh/test/ssh_property_test_SUITE.erl 執行。

    詳細資訊請參閱 test 目錄中的程式碼和說明頁面。

    (感謝 Tuncer Ayaz 提供的 Triq 修補程式)

    自身 ID: OTP-12119

Ssh 3.0.4

修正的錯誤和故障

  • 當啟動 SSH 精靈並提供選項 {parallel_login, true} 時,驗證協商的逾時時間 ({negotiation_timeout, integer()}) 從未被移除。

    如果設定了 parallel_login,這會導致工作階段總是在逾時後終止。

    自身 ID: OTP-12057 輔助 ID: seq12663

Ssh 3.0.3

修正的錯誤和故障

  • 從錯誤報告中移除郵件地址,並修正拼寫錯誤 (Stacktace -> stacktrace)。

    自身 ID: OTP-11883 輔助 ID: seq12586

  • 修正了 SSH_MSG_IGNORE 和 SSH_MSG_UNIMPLEMENTED 中的解碼/編碼問題。

    自身 ID: OTP-11983

改進和新功能

  • 接受一些較舊的 OpenSSH 用戶端傳送不正確的斷線訊息。

    自身 ID: OTP-11972

  • 正確處理 inet 和 inet6 選項

    自身 ID: OTP-11976

Ssh 3.0.2

修正的錯誤和故障

  • 修正了 ssh:connect 中的逾時錯誤。

    自身 ID: OTP-11908

改進和新功能

  • ssh:daemon/{2,3} 新增了選項 max_sessions。如果設定此選項,則會限制精靈接受的同時連線數。

    自身 ID: OTP-11885

Ssh 3.0.1

修正的錯誤和故障

  • 修正了在某些情況下,如果用戶端未請求 tty,ssh_cli 可能會延遲提示符號的問題。

    自身 ID: OTP-10732

  • 現在可以正確計算變數 NewCol,即使在函式呼叫前面有空格的情況下,也能允許函式呼叫的 Tab 鍵自動完成 (感謝 Alexander Demidenko)。

    自身 ID: OTP-11566

  • 修正了不正確的 dialyzer 規格和類型,並增強了文件。

    感謝 Ayaz Tuncer。

    自身 ID: OTP-11627

  • 修正了 ssh:exec 在 Linux SSH 精靈上執行 Linux 命令時的錯誤。如果結果是從標準錯誤傳回,則長度資訊沒有正確移除。

    自身 ID: OTP-11667

  • 修正了 SSH 檔案「known_hosts」的一個錯誤,該錯誤導致檔案新增了許多相同的項目。

    自身 ID: OTP-11671

  • 將一些從清單中移除最後一個元素的本機實作替換為 lists:droplast/1。請注意,這至少需要 stdlib-2.0,這是 OTP 17.0 中提供的 stdlib 版本。(感謝 Hans Svensson)

    自身 ID: OTP-11678

  • 針對 ssh:daemon/2,3 的錯誤修正,以便在應該呼叫時呼叫 failfun。

    自身 ID: OTP-11680

  • 修正了收到 SSH_MSG_KEX_DH_GEX_GROUP 時導致 SSH 當機的錯誤。這可能會在垃圾收集期間導致 eheap_alloc 的虛擬機器當機。

    自身 ID: OTP-11696 輔助 ID: 12547, 12532

  • 修正了導致鍵盤互動驗證中斷的錯誤。感謝 Simon Cornish 回報並提出修正建議。

    自身 ID: OTP-11698

  • 現在 ssh:start/0ssh:start/1ssh:stop/0ssh_connection_handler:open_channel/5 的 dialyzer 規格是正確的。(感謝 Johannes Weißl )

    自身 ID: OTP-11705

  • 已修正下列應用程式的應用程式升級 (appup) 檔案

    asn1、common_test、compiler、crypto、debugger、dialyzer、edoc、eldap、erl_docgen、et、eunit、gs、hipe、inets、observer、odbc、os_mon、otp_mibs、parsetools、percept、public_key、reltool、runtime_tools、ssh、syntax_tools、test_server、tools、typer、webtool、wx、xmerl

    為測試伺服器新增了用於測試 appup 檔案的新測試公用程式。現在,OTP 中的大多數應用程式都使用此公用程式。

    (感謝 Tobias Schlager)

    自身 ID: OTP-11744

  • 修正了 ssh_connection:send 的 dialyzer 警告。

    自身 ID: OTP-11821

  • ssh:daemon/2,3:新增了選項 negotiation_timeoutparallel_login 以調整驗證行為。

    自身 ID: OTP-11823

改進和新功能

  • SSH 現在完全支援 Unicode 檔案名稱、檔案內容、Shell 和 CLI。請注意,基礎作業系統和模擬器也必須支援 Unicode。您可能需要在 Linux 上使用 "erl +fnu" 啟動模擬器。

    自身 ID: OTP-10953

Ssh 3.0

修正的錯誤和故障

  • SSH CLI 現在在關閉和新提示符號之前速度更快。

    自身 ID: OTP-11339 輔助 ID: seq12423

  • 重新設計了 SSH 處理程序結構,以更好地對應到真正平行的情況,這解決了有時會發生的許多奇怪的時序問題,例如,當在短時間內平行建立和關閉大量連線時,可能會發生處理程序洩漏。此外,也移除了與「原始」但不支援的功能向後相容的子句。

    影響:提高流程效率

    *潛在的不相容性*

    自身 ID: OTP-11363

  • 修正了 erts、kernel 和 SSH 中的各種錯字。感謝 Martin Hässler。

    自身 ID: OTP-11414

  • 修正了 ssh_server_key_api 中的 private_key 類型文件。感謝 Tristan Sloughter。

    自身 ID: OTP-11449

  • ssh_no_io.erl 中的函式未正確模擬 ssh_io.erl 中的函式,某些函式的 arity 不正確,導致 SSH 以錯誤的方式失敗。

    自身 ID: OTP-11490

改進與新功能

  • 新增選項以禁用 CLI

    內部 ID:OTP-10976

  • 將 sockname 和 user 新增至 ssh:connection_info/2

    內部 ID:OTP-11296

Ssh 2.1.8

改進與新功能

  • 不再不必要地執行 chmod ~/.ssh。

    內部 ID:OTP-11189

  • 使 ssh_cli.erl 能夠處理 CTRL+C。感謝 Stefan Zegenhagen。

    內部 ID:OTP-11199

  • 在文件中澄清逾時選項。

    內部 ID:OTP-11249

  • 將 openssh_zlib 壓縮類型新增至 ssh_transport。感謝 Louis-Philippe Gauthier。

    內部 ID:OTP-11256

Ssh 2.1.7

修正錯誤和故障

  • 即使參數不是有效的表達式,ssh:daemon 也會接收到參數。

    內部 ID:OTP-10975

改進與新功能

  • 正確忽略 lib/ssh-5.2.5/doc/html/ 中的所有內容。感謝 Anthony Ramine。

    內部 ID:OTP-10983

  • 整合 Andreas Schultz 的橢圓曲線貢獻

    為了能夠在 SSL/TLS 中支援橢圓曲線密碼套件,已在 public_key 和 crypto 中新增處理橢圓曲線基礎結構的功能。

    這也導致了 crypto API 的重寫,以獲得一致性並消除不必要的開銷。所有使用 crypto 的 OTP 應用程式都已更新為使用新的 API。

    影響:橢圓曲線密碼學 (ECC) 提供與其他公鑰演算法相同的安全性,但金鑰大小更小。較小的金鑰大小可節省電力、記憶體、頻寬和計算成本,這使得 ECC 對於受限環境特別有吸引力。

    內部 ID:OTP-11009

Ssh 2.1.6

修正錯誤和故障

  • 修正了計時重新金鑰錯誤。

    內部 ID:OTP-10940

Ssh 2.1.5

修正錯誤和故障

  • 修正了守護進程重新金鑰的錯誤。

    內部 ID:OTP-10911

改進與新功能

  • 增強了錯誤訊息,並新增了測試,以檢查嘗試啟動不存在的子系統的 ssh 用戶端。

    內部 ID:OTP-10714

Ssh 2.1.4

改進與新功能

  • 當金鑰交換失敗時,錯誤訊息的品質更高。

    內部 ID:OTP-10553,輔助 ID:seq12152

  • 修正 ssh:connect/3,4 的文件連結。感謝 Martin Hässler。

    內部 ID:OTP-10862

Ssh 2.1.3

修正錯誤和故障

  • 現在可以使用 ssh_connection:send/3 發送空二進位資料,此邊緣情況之前會導致 ssh_connection:send 掛起。

    內部 ID:OTP-9478,輔助 ID:kunagi-226 [137]

  • 修正鍵盤互動字串中的錯字。感謝 Daniel Goertzen

    內部 ID:OTP-10456

  • ssh_connectino:send/3 會在所有資料都已傳送後才返回。之前它可能會太早返回,導致過早關閉連線。同時也改善了關閉 SSH 通道的錯誤處理。

    內部 ID:OTP-10467

  • 修正了 ssh_cli.erl 因為 #state.buf 尚未定義而崩潰的問題。

    修正了由於 channel_request 訊息回應發送到錯誤的 id 而導致用戶端終止連線的問題。

    受影響的 SSH 用戶端:- 所有基於 SSH-2.0-TrileadSSH2Java_213 的用戶端(問題 #1)- SSH Term Pro(問題 #2)

    感謝 Stefan Zegenhagen

    內部 ID:OTP-10475

  • 修正了 SSH appup 檔案中的各種語法錯誤

    內部 ID:OTP-10657

改進與新功能

  • 針對 sftp 實作了 SSH_FX_FILE_IS_A_DIRECTORY 訊息

    內部 ID:OTP-6406,輔助 ID:kunagi-218 [129]

  • 修正了 SSH 重新金鑰

    內部 ID:OTP-7785,輔助 ID:kunagi-220 [131]

  • 為 SSH 應用程式新增了使用者指南

    內部 ID:OTP-7786,輔助 ID:kunagi-221 [132]

  • 提供了關於 failfun、connectfun 和 disconnectfun 的文件

    內部 ID:OTP-7792,輔助 ID:kunagi-222 [133]

  • SSH 連線計時器實作

    新增選項 {idle_time, integer()},當沒有通道活動時設定連線逾時,預設為無限大

    內部 ID:OTP-10514,輔助 ID:seq12020

  • 修正了一些超出 PDF 頁面寬度的範例。

    內部 ID:OTP-10665

  • 修正了用戶端和伺服器無法就使用哪個授權方法達成一致時發生的內部錯誤。

    內部 ID:OTP-10731,輔助 ID:seq12237

Ssh 2.1.2.1

改進與新功能

  • 移除了由 badmatch 失敗觸發的 ssh_connection_handler 中的錯誤報告。

    內部 ID:OTP-11188

Ssh 2.1.2

修正錯誤和故障

  • SSH 安靜模式

    ssh:connect/3,4 新增了一個選項 quiet_mode。如果為 true,用戶端將不會在授權時印出任何內容。

    內部 ID:OTP-10429,輔助 ID:kunagi-273 [184]

  • 限制要使用的金鑰演算法

    ssh:connect/3,4 引入了一個新選項 public_key_algs,您可以在其中限制要使用的金鑰演算法以及嘗試它們的順序。

    內部 ID:OTP-10498,輔助 ID:kunagi-289 [200]

  • 用戶端密碼的機密性

    在身份驗證後取消設定用戶端的密碼。

    內部 ID:OTP-10511,輔助 ID:kunagi-292 [203]

  • 修正了 SSH 的使用者互動

    現在可以接受主機並輸入密碼

    內部 ID:OTP-10513,輔助 ID:kunagi-293 [204]

Ssh 2.1.1

修正錯誤和故障

  • Ssh 現在在所有情況下只發送一個通道關閉訊息,之前有時會錯誤地發送兩個。

    內部 ID:OTP-10060

  • 選項檢查錯誤地處理了 ip_v6_disable 選項,並且沒有正確處理一些目前未記錄的選項。

    內部 ID:OTP-10061

  • 發送到對等的通道失敗訊息中的通道 id 現在在所有情況下都是遠端通道 id

    內部 ID:OTP-10062

  • 改善了對多次關閉的處理,以避免在多次關閉通道時偶爾發生的崩潰。

    內部 ID:OTP-10112

  • 修正 lib/src/test/ssh_basic_SUITE.erl 以修正 IPv6 選項錯字

    修正了 ssh 手冊中記載的不正確選項 "ipv6_disable" 為 "ipv6_disabled"。

    內部 ID:OTP-10219

  • SSH:使 "auth_methods" 伺服器選項可重複使用

    'auth_methods' 選項由 SSH 程式碼的伺服器端使用,以告知連線的 SSH 用戶端有關伺服器支援的身份驗證方法。程式碼仍然在適當的位置從 Opts 中提取和處理 'auth_methods' 選項,但 ssh.erl 中的 Opts 檢查程式碼不允許指定該選項。

    內部 ID:OTP-10224

  • 在調整通道視窗時使用正確的通道 id

    內部 ID:OTP-10232

Ssh 2.1

修正錯誤和故障

  • 會考慮 authorized_keys 中的所有金鑰,之前錯誤地只考慮第一個金鑰。

    內部 ID:OTP-7235

  • ssh 守護進程現在可以正確處理 ras 主機金鑰,在之前的版本中,只有 dsa 主機金鑰足以建立連線。

    內部 ID:OTP-7677

  • 如果連線協商失敗,ssh:shell/3 和 ssh:connect/3 不再掛起

    內部 ID:OTP-8111

  • 改進檢查,以便在不確定是否有足夠資料時,我們不會嘗試讀取 ssh 資料封包長度指示符。

    內部 ID:OTP-8380

  • 當禁用使用者互動時,不要嘗試使用使用者互動。

    內部 ID:OTP-9466,輔助 ID:seq11886

  • 改善了 ssh 連線處理程序中內部錯誤的錯誤處理

    內部 ID:OTP-9905

  • sftp 守護進程會產生正確的檔案控制代碼

    內部 ID:OTP-9948

改進與新功能

  • 記錄支援的演算法

    內部 ID:OTP-8109

  • 從 sftp 用戶端正常處理過早關閉。

    內部 ID:OTP-9391,輔助 ID:seq11838

  • 已將 ssh 實作變更為使用 public_key 應用程式進行所有公鑰處理。這也是啟用回呼 API 的第一步,該 API 用於提供公鑰和處理受密碼短語保護的金鑰。

    此外,測試套件也得到了改進,因此它們不會將使用者的金鑰複製到測試伺服器目錄,因為這會造成安全性風險。同時也修正了在此過程中發現的 ipv6 和檔案存取問題。

    此變更也解決了 OTP-7677 和 OTP-7235

    此變更還涉及對 public_keys ssh 函式的一些更新。

    內部 ID:OTP-9911

  • 為 ssh 用戶端新增了選項,以支援受密碼保護的使用者金鑰檔案。

    內部 ID:OTP-10036,輔助 ID:OTP-6400,Seq10595

Ssh 2.0.9

改進與新功能

  • 現在可以使用平行 make 來建置 Erlang/OTP,前提是您限制任務數量,例如使用 'make -j6' 或 'make -j10'。由於缺少一些相依性,目前 'make -j' 無法運作。

    內部 ID:OTP-9451

  • Ssh 行為現在使用新的指令 "-callback"。參數將在稍後的 ssh 版本中進一步指定。

    內部 ID:OTP-9796

Ssh 2.0.8

修正錯誤和故障

  • 呼叫 ssh_sftp:stop_channel/1 會導致為調用程序將 trap_exit 旗標設定為 true。

    內部 ID:OTP-9386,輔助 ID:seq11865

Ssh 2.0.7

修正錯誤和故障

  • 一個意外的訊息會導致 ssh_connection_handler 崩潰並關閉連線。現在會產生錯誤訊息。

    內部 ID:OTP-9273

Ssh 2.0.6

修正的錯誤與故障

  • 已修正記憶體洩漏問題。也就是說,每個終止的連線,其 pid 大小和使用者名稱字串長度都未被清除。

    內部編號:OTP-9232

Ssh 2.0.5

改進與新功能

  • 強化了亂數產生。(感謝 Geoff Cant)

    內部編號:OTP-9225

Ssh 2.0.4

修正的錯誤與故障

  • 在某些情況下,當通道意外終止時,SSH 會返回 {error, normal}。現在已更改為 {error, channel_closed}。

    *潛在的不相容性*

    內部編號:OTP-8987 輔助編號:seq11748

  • 嘗試開啟 IPv6 連線時,SSH 沒有處理錯誤原因 enetunreach。

    內部編號:OTP-9031

改進與新功能

  • 現在可以使用 SSH 來簽署和驗證二進位資料。

    內部編號:OTP-8986

  • SSH 現在確保 .ssh 目錄存在,然後才嘗試存取位於該目錄中的檔案。

    內部編號:OTP-9010

Ssh 2.0.3

修正的錯誤與故障

  • 關於 OTP-8849 的修復程式如所述並未包含在先前版本中。

    內部編號:OTP-8918

Ssh 2.0.2

修正的錯誤與故障

  • ssh_system_sup 沒有捕獲 noproc 和 shutdown 訊息。

    內部編號:OTP-8863

  • 在某些情況下,當連線關閉時會產生當機報告。這是由於兩個程序之間的競爭條件所造成的。

    內部編號:OTP-8881 輔助編號:seq11656, seq11648

改進與新功能

  • SSH 不再使用已棄用的 public_key 函數。

    內部編號:OTP-8849

Ssh 2.0.1

修正的錯誤與故障

  • 在某些情況下,SSH 以 normal 原因終止通道,但它應該是 shutdown。

    內部編號:OTP-8714

  • 在某些情況下,當通道以正常方式關閉時,SSH 會產生當機報告。

    內部編號:OTP-8735 輔助編號:seq11615

  • 當連線關閉時,程序 ssh_subsystem_sup 和一個 ssh_channel_sup 並未終止。

    內部編號:OTP-8807

Ssh 2.0

修正的錯誤與故障

  • 函數 ssh:connect/4 未匯出。

    內部編號:OTP-8550 輔助編號

  • 將錯誤訊息與使用的版本對齊(SSH_FX_FAILURE 對比 SSH_FX_NOT_A_DIRECTORY,後者在版本 6 中引入)。

    *潛在的不相容性*

    內部編號:OTP-8644 輔助編號:seq11574

  • 解決了在第一個連線中開啟通道之前開始另一個連線時的競爭條件。

    內部編號:OTP-8645 輔助編號:seq11577

改進與新功能

  • 現在可以使用組態參數 ip_v6_disabled,這使得使用者可以變更 SSH 將使用的 IP 版本。

    *潛在的不相容性*

    內部編號:OTP-8535 輔助編號

  • ssh_connection:send 操作現在接受 infinity 作為逾時時間。

    內部編號:OTP-8534 輔助編號

  • 當通道訊息未正確處理時,連線處理常式現在包含堆疊追蹤。

    內部編號:OTP-8524 輔助編號

  • 移除了已棄用的模組(ssh_ssh、ssh_sshd 和 ssh_cm)和函數(ssh_sftp:connect 和 ssh_sftp:stop)。

    *潛在的不相容性*

    內部編號:OTP-8596 輔助編號

Ssh 1.1.8

修正的錯誤與故障

  • 在某些情況下,SSH 停止從傳輸層收集更多資料。

    內部編號:OTP-8401 輔助編號:seq11479

改進與新功能

  • 移除了舊的版本說明。

    內部編號:OTP-8356 輔助編號

Ssh 1.1.7

修正的錯誤與故障

  • 現在,當連線終止時,會清除所有程序。

    內部編號:OTP-8121 輔助編號

  • 在某些罕見的情況下,連線處理常式可能會進入無限迴圈。

    內部編號:OTP-8277 輔助編號:seq11428

  • 如果 SFTP 伺服器沒有回應 EOF,則函數 ssh_sftp:list_dir/2/3 會進入無限迴圈。

    內部編號:OTP-8278 輔助編號:seq11450

改進與新功能

  • 現在文件是使用大多數平台上都存在的開放原始碼工具(xsltproc 和 fop)建置的。一個明顯的變更是移除了框架。

    內部編號:OTP-8201 輔助編號

Ssh 1.1.6

修正的錯誤與故障

  • ssh_sftp:start_channel 未正確處理 ssh_channel:start 的所有可能傳回值。

    內部編號:OTP-8176 輔助編號

  • SFTPD 未正確處理重新命名命令 (版本 4)。

    內部編號:OTP-8175 輔助編號:seq11373

  • 如果連線管理員已終止,它可能會導致通道在即將停止時產生當機報告。

    內部編號:OTP-8174 輔助編號:seq11377

  • 如果通道不再存在,則請求可能會在連線管理員中導致 badarg 或 badmatch EXIT 訊息。

    內部編號:OTP-8173 輔助編號:seq11379

  • ssh_transport:unpack/3 可能會導致 badarg 錯誤。

    內部編號:OTP-8162 輔助編號

改進與新功能

  • 現在支援加密演算法 aes128-cbc。需要 crypto-1.6.1 可用。

    內部編號:OTP-8110 輔助編號

Ssh 1.1.5

修正的錯誤與故障

  • ssh_sftp:start_channel/3 未正確處理逾時。

    內部編號:OTP-8159 輔助編號:seq11386

  • 如果在調用 ssh:connect/3 後未收到進度訊息,則該呼叫可能會永遠掛起。也新增了逾時選項。

    內部編號:OTP-8160 輔助編號:seq11386

  • 自 SSH-1.0.2 以來,ssh.appup 檔案中缺少一個逗號。

    內部編號:OTP-8161 輔助編號

Ssh 1.1.4

修正的錯誤與故障

  • SSH 有時會在斷線時導致當機報告。

    內部編號:OTP-8071 輔助編號:seq11319

Ssh 1.1.3

修正的錯誤與故障

  • 如果連線已關閉,則 ssh_sftp:stop_channel/1 操作會傳回例外狀況。

    內部編號:OTP-7996 輔助編號:seq11281

  • 如果 supervisor:start_child/2 傳回 {error, already_present},則 SSH 無法處理。

    內部編號:OTP-8034 輔助編號:seq11307

  • 當連線以受控方式終止時,SSH 不再導致 supervisor 報告。

    內部編號:OTP-8035 輔助編號:seq11308

Ssh 1.1.2

修正的錯誤與故障

  • Ssh 混淆了本地和遠程通道 ID,這在某些情況下導致訊息被捨棄。

    內部編號:OTP-7914 輔助編號:seq11234

  • Ssh 無法處理 0 和 1 以外的回顯值。

    內部編號:OTP-7917 輔助編號:seq11238

  • 如果收到無效的通道參考,則會發生當機。

    內部編號:OTP-7918 輔助編號:seq11238

  • 從用戶端收到 eof 後,Sftpd 連線未關閉。

    內部編號:OTP-7921 輔助編號:seq11222

  • 在某些平台上(即那些不支援符號連結的平台)無法啟動 SFTP 子系統。

    內部編號:OTP-7930 輔助編號

  • 在某些情況下,訊息 {ssh_cm, ssh_connection_ref(), {closed, ssh_channel_id()}} 沒有傳遞到已註冊的回呼模組。

    內部編號:OTP-7957 輔助編號

改進與新功能

  • 透過使用 sftpd 選項 {max_files, Integer},可以縮減 READDIR 命令的訊息大小。

    內部編號:OTP-7919 輔助編號:seq11230

Ssh 1.1.1

修正的錯誤與故障

  • erlang ssh 伺服器的自我介紹不正確,使用了特殊版本 ssh-1.99,儘管它從未支援過 2.0 以下的版本。由於 ssh-1.1,低於 2.0 的客戶端版本會被正確拒絕,而不是讓伺服器稍後當機。唉,直到 ssh.1.1 發布後才發現呈現字串的問題。現在伺服器將自我介紹為 ssh-2.0。

    內部編號:OTP-7795

  • 內部函數呼叫使用了不正確的參數,導致舊的 listen API 使用時發生問題。此問題於 Ssh-1.1 版本引入。

    自身 ID:OTP-7920 輔助 ID:seq11211

改進與新功能

  • Ssh 超時現在將如預期般運作,即預設為無限大,只有 ssh 應用程式的使用者才能知道其應用程式的合理超時值。

    *潛在的不相容性*

    自身 ID:OTP-7807

  • 在 ssh-1.0.1 版本中作為修補程式加入的超時實作已稍作更改,並已記錄在文件中。

    自身 ID:OTP-7808

  • 為了遵循在單一 ssh 連線上多工處理通道的概念,ssh_sftp:connect/ [1,2,3] 已被棄用,並由 ssh_sftp:start_channel/[1,2,3] 取代;ssh_sftp:stop/1 已被棄用,並由 ssh_sftp:stop_channel/1 取代;若要停止 ssh 連線,應呼叫 ssh:close/1。

    自身 ID:OTP-7809

  • 新增了訊息 {ssh_channel_up, ChannelId, ConnectionManager},應由通道回呼函數 handle_msg/2 處理。這使得函數 handle_msg/2 成為 ssh 通道實作的強制性函數,這在 ssh-1.1 版本中並非如此。

    *潛在的不相容性*

    自身 ID:OTP-7828

Ssh 1.1

已修正的錯誤與故障

  • 監管樹實作中的缺陷導致如果有一位使用者登出,ssh 精靈會關閉與所有目前已登入使用者的連線。另一個與監管樹相關的問題導致客戶端關閉時洩漏程序,即並非所有程序都已正確關閉。

    自身 ID:OTP-7676

  • Tab 鍵可能會導致 ssh_cli 以令人意外的方式列印內容。

    自身 ID:OTP-7683 輔助 ID:seq11102

  • [sftp, sftpd] - 新增修補程式,使 sftp 時間戳記更準確。長遠來看,最好能在檔案中提供更好的支援,使其始終能正確運作。現在至少在基於 Unix 的平台上,將有 99% 的時間是正確的,而不是幾乎從不正確。

    自身 ID:OTP-7685 輔助 ID:seq11082

  • [sftpd] - 新增修補程式,進一步改進 sftp 伺服器中符號連結的處理。

    自身 ID:OTP-7766 輔助 ID:seq11101

  • Ssh 錯誤地將通道的本地 ID 而非遠端 ID 發送給對等方。在較簡單的情況下,這些 ID 通常恰好具有相同的值。其中一個它們不相同的情況是,當客戶端在同一個 ssh 連線上連續兩次發送 exec 命令時(當然是不同的通道,因為 exec 命令評估後通道會關閉)。

    自身 ID:OTP-7767

  • 在高負載下,封包資料可能會遺失,原因是有時會錯誤地捨棄緩衝的資料,而這些資料尚未傳送。

    自身 ID:OTP-7768

  • 改進了 ipv6 的處理,因為對於 inet 函數的一些假設是不正確的。

    自身 ID:OTP-7770

改進與新功能

  • 新增了新的 API 函數 ssh:connection_info/2。

    自身 ID:OTP-7456

  • 現在稍後啟動 ssh 通道程序,以避免程序之間的同步問題。

    自身 ID:OTP-7516

  • Ssh 現在會因為安全理由而拒絕舊版本的 ssh 協定。(即使以前未正確拒絕,連線也可能因其他原因而失敗。)

    自身 ID:OTP-7645 輔助 ID:seq11094

  • 新增了新的 API 模組 ssh_channel。這是一種行為,有助於實作 ssh 客戶端和將子系統外掛到 ssh 精靈。請注意,這會稍微變更 API 函數 ssh:daemon/[1,2,3] 的選項,棄用所有不再記錄的選項。請注意,新的 API 強制執行使用舊 API 的「邏輯方式」,即將子系統程序納入 ssh 應用程式的監管樹中,因此舊 API 的誤用與新的 API 不相容。

    *潛在的不相容性*

    自身 ID:OTP-7769

已知錯誤與問題

  • 目前 erlang ssh 應用程式不處理受密碼保護的公開金鑰。

    自身 ID:OTP-6400 輔助 ID:10595

Ssh 1.0.2

已修正的錯誤與故障

  • [sftpd] - 符號連結目錄的列出現在應如預期般運作。

    自身 ID:OTP-7141 輔助 ID:seq10856

Ssh 1.0.1

已修正的錯誤與故障

  • [sftp] - 列出超過 100 個檔案的目錄時,只會列出前 100 個。此問題現已修正。

    自身 ID:OTP-7318 輔助 ID:seq10953

  • 重新啟動 ssh 系統時,ssh_system_sup:restart_acceptor/2 的預期傳回值不正確,現在已不再如此。

    自身 ID:OTP-7564 輔助 ID:seq11055

  • 在 ssh_userreg.erl 和 ssh_connection_manager 中修正了一些小錯誤,並新增了一個 ssh_cli 選項,以恢復與舊的 ssh_cm - API 的向後相容性。

    自身 ID:OTP-7565

  • 修正了 ipv6 支援中的錯誤,並新增了一個選項來停用 ipv6,以作為配置錯誤電腦的替代解決方案。

    自身 ID:OTP-7566

改進與新功能

  • [sftp] - 新增選項以在 sftp 中設定超時值。

    自身 ID:OTP-7305 輔助 ID:seq10945

Ssh 1.0

已修正的錯誤與故障

  • 移除了一些特殊處理提示符的程式碼,這些程式碼使 ssh 的行為與 openssh 不同。

    自身 ID:OTP-7485 輔助 ID:seq11025

  • 已修正 pty opts 的編碼錯誤。

    自身 ID:OTP-7504

改進與新功能

  • 已重新架構 ssh 程序的架構,使其適合放入監管樹中,以成為真正的 OTP 應用程式,並在啟動和停止時從中受益。

    自身 ID:OTP-7356 輔助 ID:seq10899

  • 新增對 pty 選項 echo off 的支援。需要 R12B-4 或更新版本的核心。

    *潛在的不相容性*

    自身 ID:OTP-7502 輔助 ID:seq10959

  • ssh API 已大幅增強,許多舊的 API 函數已遭棄用。

    自身 ID:OTP-7503