OpenSSH 9.4p1 がリリースされました

10 Aug, 2023 - 5 minutes

2023/08/10, OpenSSH 9.4p1 がリリースされました.

バグ修正中心のリリースです.


https://www.openssh.com/releasenotes.html#9.4p1

Changes since OpenSSH 9.3p2
===========================

OpenSSH 9.3p2 からの変更点

This release fixes a number of bugs and adds some small features.

このリリースは多数のバグを修正しいくつかの小さい特徴を追加する.

Potentially incompatible changes
--------------------------------

潜在的に非互換の変更点

 * This release removes support for older versions of libcrypto.
   OpenSSH now requires LibreSSL >= 3.1.0 or OpenSSL >= 1.1.1.
   Note that these versions are already deprecated by their upstream
   vendors.

   このリリースは libcrypto の古いバージョンのサポートを除く.
   OpenSSH は LibreSSL >= 3.1.0 か OpenSSL >= 1.1.1 を必要とする.
   除かれたバージョンは, それぞれの上流のベンダーによって既に
   非推奨となっている点に注意.

 * ssh-agent(1): PKCS#11 modules must now be specified by their full
   paths. Previously dlopen(3) could search for them in system
   library directories.

   ssh-agent(1): PKCS#11 モジュールは, そのフルパスによって指定され
   なければならなくなる. 以前は dlopen(3) はシステムのライブラリ
   ディレクトリ中のモジュールを検索できた.

New features
------------

新機能

 * ssh(1): allow forwarding Unix Domain sockets via ssh -W.

   ssh(1): ssh -W によって Unix ドメインソケットの転送が
   できる.

 * ssh(1): add support for configuration tags to ssh(1).
   This adds a ssh_config(5) "Tag" directive and corresponding
   "Match tag" predicate that may be used to select blocks of
   configuration similar to the pf.conf(5) keywords of the same
   name.

   ssh(1): ssh(1) に対する設定タグのサポートを追加する.
   同じ名前の pf.conf(5) と同様の設定のブロックを用いるのに
   利用できる ssh_config(5) の "Tag" 設定項目と関連する 
   "Match tag" 述語を追加する. 

 * ssh(1): add a "match localnetwork" predicate. This allows matching
   on the addresses of available network interfaces and may be used to
   vary the effective client configuration based on network location.

   "match localnetwork" 述語を追加する. ネットワークロケーション
   に基づく効率的なクライアント設定の変更のために利用できる
   利用可能なネットワークインターフェイスのアドレスのマッチングを
   可能にする.

 * ssh(1), sshd(8), ssh-keygen(1): infrastructure support for KRL
   extensions.  This defines wire formats for optional KRL extensions
   and implements parsing of the new submessages. No actual extensions
   are supported at this point.

   ssh(1), sshd(8), ssh-keygen(1): KRL 拡張の基盤サポート. 選択可能な
   KRL 拡張の通信フォーマットを定義し, 新しいサブメッセージのパースを
   実装する. 現時点では実際の拡張はサポートされていない.

 * sshd(8): AuthorizedPrincipalsCommand and AuthorizedKeysCommand now
   accept two additional %-expansion sequences: %D which expands to
   the routing domain of the connected session and %C which expands
   to the addresses and port numbers for the source and destination
   of the connection.

   sshd(8): AuthorizedPrincipalsCommand と AuthorizedKeysCommand が
   2 つの追加の %-拡張シーケンスを受けつける: %D は接続セッションの
   ルーティングドメインに展開される. %C は 接続元/先のアドレスとポート
   番号に展開される.

 * ssh-keygen(1): increase the default work factor (rounds) for the
   bcrypt KDF used to derive symmetric encryption keys for passphrase
   protected key files by 50%.

   ssh-keygen(1): パスフレーズで保護される鍵の共通暗号鍵を導出
   するのに用いられる bcrypt KDF のデフォルトの work factor (ラウンド)
   を 50% 増やす.

Bugfixes
--------

バグ修正

 * ssh-agent(1): improve isolation between loaded PKCS#11 modules
   by running separate ssh-pkcs11-helpers for each loaded provider.

   ssh-agent(1): それぞれのロードされたプロバイダごとに
   別々の ssh-pkcs11-helpers を実行することで ロードされた PKCS#11
   モジュール間の分離を改善する.

 * ssh(1): make -f (fork after authentication) work correctly with
   multiplexed connections, including ControlPersist. bz3589 bz3589

   ssh(1):  -f (認証後の fork) がControlPersist を含む多重化された接続で
   正しく動作する. bz3589

 * ssh(1): make ConnectTimeout apply to multiplexing sockets and not
   just to network connections.

   ssh(1): ConnectTimeout を ネットワーク接続にではなく
   多重化されたソケットへ適用させる.

 * ssh-agent(1), ssh(1): improve defences against invalid PKCS#11
   modules being loaded by checking that the requested module
   contains the required symbol before loading it.

   ssh-agent(1), ssh(1): ロード前に必要なシンボルを含む要求された
   モジュールかをチェックしてロードするようにして
   不正な PKCS#11 モジュールに対する防御を改善する.

 * sshd(8): fix AuthorizedPrincipalsCommand when AuthorizedKeysCommand
   appears before it in sshd_config. Since OpenSSH 8.7 the
   AuthorizedPrincipalsCommand directive was incorrectly ignored in
   this situation. bz3574

   sshd(8): sshd_config で  AuthorizedKeysCommand が
   AuthorizedPrincipalsCommand より前に出現する場合の AuthorizedPrincipalsCommand
   を修正する. OpenSSH 8.7 より この状況では AuthorizedPrincipalsCommand 
   設定項目は不正に無視されていた. bz3574

 * sshd(8), ssh(1), ssh-keygen(1): remove vestigal support for KRL
   signatures When the KRL format was originally defined, it included
   support for signing of KRL objects. However, the code to sign KRLs
   and verify KRL signatues was never completed in OpenSSH. This
   release removes the partially-implemented code to verify KRLs.
   All OpenSSH tools now ignore KRL_SECTION_SIGNATURE sections in
   KRL files.

   sshd(8), ssh(1), ssh-keygen(1): KRL 署名の名残りのサポートを削除する.
   KRL フォーマットが元々定義されたとき, KRL オブジェクトの署名の
   サポートが含まれていた. しかし, KRL の署名と KRL 署名の検証のコードは
   OpenSSH では完了することはなかった. このリリースで KRL を検証する
   部分的に実装されたコードを削除する. すべての OpenSSH ツールは
   KRL ファイルの KRL_SECTION_SIGNATURE 節を無視する.

 * All: fix a number of memory leaks and unreachable/harmless integer
   overflows.

   All: 多数のメモリリークと到達しない/害のない整数オーバーフローを
   修正する.

 * ssh-agent(1), ssh(1): don't truncate strings logged from PKCS#11
   modules; GHPR406

   ssh-agent(1), ssh(1): PKCS#11 モジュールからログされる文字列を
   切り詰めない; GHPR406

 * sshd(8), ssh(1): better validate CASignatureAlgorithms in
   ssh_config and sshd_config. Previously this directive would accept
   certificate algorithm names, but these were unusable in practice as
   OpenSSH does not support CA chains. bz3577

   sshd(8), ssh(1): ssh_config と sshd_config での CASignatureAlgorithms
   の検証を改善する. 以前はこの設定項目は証明書のアルゴリズム名を
   受け付けていたが, OpenSSH が CA チェーンをサポートしていない場合
   実際には不安定だった. bz3577

 * ssh(1): make `ssh -Q CASignatureAlgorithms` only list signature
   algorithms that are valid for CA signing. Previous behaviour was
   to list all signing algorithms, including certificate algorithms.

   ssh(1): `ssh -Q CASignatureAlgorithms` は CA 署名で正当な
   アルゴリズムのみを列挙するようになる. 以前の動作は,
   証明書のアルゴリズムを含むすべての署名アルゴリズムを列挙していた.

 * ssh-keyscan(1): gracefully handle systems where rlimits or the
   maximum number of open files is larger than INT_MAX; bz3581

   ssh-keyscan(1): INT_MAX よりも大きな rlimits や ファイルの最大
   オープン数のシステムを慈悲深く取り扱う; bz3581

 * ssh-keygen(1): fix "no comment" not showing on when running
   `ssh-keygen -l` on multiple keys where one has a comment and other
   following keys do not. bz3580

   ssh-keygen(1): 1つはコメントを持ちそれ以外の続く鍵が持たない場合に
   複数の鍵に対する `ssh-keygen -l` を実行した再に "no comment" が
   表示されないのを修正する. bz3580

 * scp(1), sftp(1): adjust ftruncate() logic to handle servers that
   reorder requests. Previously, if the server reordered requests then
   the resultant file would be erroneously truncated.

   scp(1), sftp(1): リクエストを再送するサーバを扱う ftruncate() ロジック
   を調整する. 以前は, サーバがリクエストを再送信すると結果のファイルは
   誤って切り詰められていた.

 * ssh(1): don't incorrectly disable hostname canonicalization when
   CanonicalizeHostname=yes and ProxyJump was expicitly set to
   "none". bz3567

   ssh(1): CanonicalizeHostname=yes で ProxyJump が明示的に "none" に
   設定されている場合, ホスト名の正規化を誤って無効にしないようにする.
   bz3567

 * scp(1): when copying local->remote, check that the source file
   exists before opening an SFTP connection to the server. Based on
   GHPR#370

   scp(1): ローカルからリモートに転送する再, サーバに SFTP 接続を
   する前に ソースファイルが存在するか検査する. GHPR#370 をベースに
   している.

Portability
-----------

移植性

 * All: a number of build fixes for various platforms and
   configuration combinations.

   All: 様々なプラットフォームと設定の組合せで多数のビルドの問題を
   修正.

 * sshd(8): provide a replacement for the SELinux matchpathcon()
   function, which is deprecated.

   sshd(8): 非推奨となった SELinux matchpathcon() 関数の
   代替を提供する.

 * All: relax libcrypto version checks for OpenSSL >=3. Beyond
   OpenSSL 3.0, the ABI compatibility guarantees are wider (only
   the library major must match instead of major and minor in
   earlier versions).  bz#3548.

   OpenSSL >= 3 での libcrypto バージョンチェックを緩和する
   OpenSSL 3.0 より先では, ABI の互換性保証はより拡大している
   (以前のバージョンでは, ライブラリのメジャーバージョンのみが
   一致しなければならなかった. 現在は メジャーとマイナーが一致しな
   ければならない). bz#3548

 * Tests: fix build problems for the sk-dummy.so FIDO provider module
   used in some tests.

   テスト: いくつかのテストで用いられる sk-dummy.so FIDO プロバイダ
   のビルドの問題を修正する.

OpenSSH 9.4 リリース準備中 / Call for testing: OpenSSH 9.4

31 Jul, 2023 - 5 minutes

OpenSSH 9.4 がリリース準備中です.

Call for testing: OpenSSH 9.4

https://lists.mindrot.org/pipermail/openssh-unix-dev/2023-July/040872.html

Changes since OpenSSH 9.3p2
===========================

OpenSSH 9.3p2 からの変更点

This release fixes a number of bugs and adds some small features.

このリリースは多数のバグを修正しいくつかの小さい特徴を追加する.

Potentially incompatible changes
--------------------------------

潜在的に非互換の変更点

 * This release removes support for older versions of libcrypto.
   OpenSSH now requires LibreSSL >= 3.1.0 or OpenSSL >= 1.1.1.
   Note that these versions are already deprecated by their upstream
   vendors.

   このリリースは libcrypto の古いバージョンのサポートを除く.
   OpenSSH は LibreSSL >= 3.1.0 か OpenSSL >= 1.1.1 を必要とする.
   除かれたバージョンは, それぞれの上流のベンダーによって既に
   非推奨となっている点に注意.

 * ssh-agent(1): PKCS#11 modules must now be specified by their full
   paths. Previously dlopen(3) could search for them in system
   library directories.

   ssh-agent(1): PKCS#11 モジュールは, そのフルパスによって指定され
   なければならなくなる. 以前は dlopen(3) はシステムのライブラリ
   ディレクトリ中のモジュールを検索できた.

New features
------------

新機能

 * ssh(1): allow forwarding Unix Domain sockets via ssh -W.

   ssh(1): ssh -W によって Unix ドメインソケットの転送が
   できる.

 * ssh(1): add support for configuration tags to ssh(1).
   This adds a ssh_config(5) "Tag" directive and corresponding
   "Match tag" predicate that may be used to select blocks of
   configuration similar to the pf.conf(5) keywords of the same
   name.

   ssh(1): ssh(1) に対する設定タグのサポートを追加する.
   同じ名前の pf.conf(5) と同様の設定のブロックを用いるのに
   利用できる ssh_config(5) の "Tag" 設定項目と関連する 
   "Match tag" 述語を追加する. 

 * ssh(1): add a "match localnetwork" predicate. This allows matching
   on the addresses of available network interfaces and may be used to
   vary the effective client configuration based on network location.

   "match localnetwork" 述語を追加する. ネットワークロケーション
   に基づく効率的なクライアント設定の変更のために利用できる
   利用可能なネットワークインターフェイスのアドレスのマッチングを
   可能にする.

 * ssh(1), sshd(8), ssh-keygen(1): infrastructure support for KRL
   extensions.  This defines wire formats for optional KRL extensions
   and implements parsing of the new submessages. No actual extensions
   are supported at this point.

   ssh(1), sshd(8), ssh-keygen(1): KRL 拡張の基盤サポート. 選択可能な
   KRL 拡張の通信フォーマットを定義し, 新しいサブメッセージのパースを
   実装する. 現時点では実際の拡張はサポートされていない.

 * sshd(8): AuthorizedPrincipalsCommand and AuthorizedKeysCommand now
   accept two additional %-expansion sequences: %D which expands to
   the routing domain of the connected session and %C which expands
   to the addresses and port numbers for the source and destination
   of the connection.

   sshd(8): AuthorizedPrincipalsCommand と AuthorizedKeysCommand が
   2 つの追加の %-拡張シーケンスを受けつける: %D は接続セッションの
   ルーティングドメインに展開される. %C は 接続元/先のアドレスとポート
   番号に展開される.

 * ssh-keygen(1): increase the default work factor (rounds) for the
   bcrypt KDF used to derive symmetric encryption keys for passphrase
   protected key files by 50%.

   ssh-keygen(1): パスフレーズで保護される鍵の共通暗号鍵を導出
   するのに用いられる bcrypt KDF のデフォルトの work factor (ラウンド)
   を 50% 増やす.

Bugfixes
--------

バグ修正

 * ssh-agent(1): improve isolation between loaded PKCS#11 modules
   by running seperate ssh-pkcs11-helpers for each loaded provider.

   ssh-agent(1): それぞれのロードされたプロバイダごとに
   別々の ssh-pkcs11-helpers を実行することで ロードされた PKCS#11
   モジュール間の分離を改善する.

 * ssh(1): make -f (fork after authentication) work correctly with
   multiplexed connections, including ControlPersist. bz3589 bz3589

   ssh(1):  -f (認証後の fork) がControlPersist を含む多重化された接続で
   正しく動作する. bz3589

 * ssh-agent(1), ssh(1): improve defences against invalid PKCS#11
   modules being loaded by checking that the requested module
   contains the required symbol before loading it.

   ssh-agent(1), ssh(1): ロード前に必要なシンボルを含む要求された
   モジュールかをチェックしてロードするようにして
   不正な PKCS#11 モジュールに対する防御を改善する.

 * sshd(8): fix AuthorizedPrincipalsCommand when AuthorizedKeysCommand
   appears before it in sshd_config. Since OpenSSH 8.7 the
   AuthorizedPrincipalsCommand directive was incorrectly ignored in
   this situation. bz3574

   sshd(8): sshd_config で  AuthorizedKeysCommand が
   AuthorizedPrincipalsCommand より前に出現する場合の AuthorizedPrincipalsCommand
   を修正する. OpenSSH 8.7 より この状況では AuthorizedPrincipalsCommand 
   設定項目は不正に無視されていた. bz3574

 * sshd(8), ssh(1), ssh-keygen(1): remove vestigal support for KRL
   signatures When the KRL format was originally defined, it included
   support for signing of KRL objects. However, the code to sign KRLs
   and verify KRL signatues was never completed in OpenSSH. This
   release removes the partially-implemented code to verify KRLs.
   All OpenSSH tools now ignore KRL_SECTION_SIGNATURE sections in
   KRL files.

   sshd(8), ssh(1), ssh-keygen(1): KRL 署名の名残りのサポートを削除する.
   KRL フォーマットが元々定義されたとき, KRL オブジェクトの署名の
   サポートが含まれていた. しかし, KRL の署名と KRL 署名の検証のコードは
   OpenSSH では完了することはなかった. このリリースで KRL を検証する
   部分的に実装されたコードを削除する. すべての OpenSSH ツールは
   KRL ファイルの KRL_SECTION_SIGNATURE 節を無視する.

 * All: fix a number of memory leaks and unreachable/harmless integer
   overflows.

   All: 多数のメモリリークと到達しない/害のない整数オーバーフローを
   修正する.

 * ssh-agent(1), ssh(1): don't truncate strings logged from PKCS#11
   modules; GHPR406

   ssh-agent(1), ssh(1): PKCS#11 モジュールからログされる文字列を
   切り詰めない; GHPR406

 * sshd(8), ssh(1): better validate CASignatureAlgorithms in
   ssh_config and sshd_config. Previously this directive would accept
   certificate algorithm names, but these were unusable in practice as
   OpenSSH does not support CA chains. bz3577

   sshd(8), ssh(1): ssh_config と sshd_config での CASignatureAlgorithms
   の検証を改善する. 以前はこの設定項目は証明書のアルゴリズム名を
   受け付けていたが, OpenSSH が CA チェーンをサポートしていない場合
   実際には不安定だった. bz3577

 * ssh(1): make `ssh -Q CASignatureAlgorithms` only list signature
   algorithms that are valid for CA signing. Previous behaviour was
   to list all signing algorithms, including certificate algorithms.

   ssh(1): `ssh -Q CASignatureAlgorithms` は CA 署名で正当な
   アルゴリズムのみを列挙するようになる. 以前の動作は,
   証明書のアルゴリズムを含むすべての署名アルゴリズムを列挙していた.

 * ssh-keyscan(1): gracefully handle systems where rlimits or the
   maximum number of open files is larger than INT_MAX; bz3581

   ssh-keyscan(1): INT_MAX よりも大きな rlimits や ファイルの最大
   オープン数のシステムを慈悲深く取り扱う; bz3581

 * ssh-keygen(1): fix "no comment" not showing on when running
   `ssh-keygen -l` on multiple keys where one has a comment and other
   following keys do not. bz3580

   ssh-keygen(1): 1つはコメントを持ちそれ以外の続く鍵が持たない場合に
   複数の鍵に対する `ssh-keygen -l` を実行した再に "no comment" が
   表示されないのを修正する. bz3580

 * scp(1), sftp(1): adjust ftruncate() logic to handle servers that
   reorder requests. Previously, if the server reordered requests then
   the resultant file would be erroneously truncated.

   scp(1), sftp(1): リクエストを再送するサーバを扱う ftruncate() ロジック
   を調整する. 以前は, サーバがリクエストを再送信すると結果のファイルは
   誤って切り詰められていた.

 * ssh(1): don't incorrectly disable hostname canonicalization when
   CanonicalizeHostname=yes and ProxyJump was expicitly set to
   "none". bz3567

   ssh(1): CanonicalizeHostname=yes で ProxyJump が明示的に "none" に
   設定されている場合, ホスト名の正規化を誤って無効にしないようにする.
   bz3567

 * scp(1): when copying local->remote, check that the source file
   exists before opening an SFTP connection to the server. Based on
   GHPR#370

   scp(1): ローカルからリモートに転送する再, サーバに SFTP 接続を
   する前に ソースファイルが存在するか検査する. GHPR#370 をベースに
   している.

Portability
-----------

移植性

 * All: a number of build fixes for various platforms and
   configuration combinations.

   All: 様々なプラットフォームと設定の組合せで多数のビルドの問題を
   修正.

 * sshd(8): provide a replacement for the SELinux matchpathcon()
   function, which is deprecated.

   sshd(8): 非推奨となった SELinux matchpathcon() 関数の
   代替を提供する.

 * All: relax libcrypto version checks for OpenSSL >=3. Beyond
   OpenSSL 3.0, the ABI compatibility guarantees are wider (only
   the library major must match instead of major and minor in
   earlier versions).  bz#3548.

   OpenSSL >= 3 での libcrypto バージョンチェックを緩和する
   OpenSSL 3.0 より先では, ABI の互換性保証はより拡大している
   (以前のバージョンでは, ライブラリのメジャーバージョンのみが
   一致しなければならなかった. 現在は メジャーとマイナーが一致しな
   ければならない). bz#3548

 * Tests: fix build problems for the sk-dummy.so FIDO provider module
   used in some tests.

   テスト: いくつかのテストで用いられる sk-dummy.so FIDO プロバイダ
   のビルドの問題を修正する.

OpenSSH 9.3p2 がリリースされました

19 Jul, 2023 - 2 minutes

2023/07/19, OpenSSH 9.3p2 がリリースされました.

セキュリティバグの修正のリリースです.

# https://www.openssh.com/releasenotes.html#9.3p2

Changes since OpenSSH 9.3
=========================

OpenSSH 9.3 からの変更点

This release fixes a security bug.

このリリースはセキュリティのバグを修正する.

Security
========

セキュリティ

Fix CVE-2023-38408 - a condition where specific libaries loaded via
ssh-agent(1)'s PKCS#11 support could be abused to achieve remote
code execution via a forwarded agent socket if the following
conditions are met:

CVE-2023-38408 - ssh-agent(1) の PKCS#11 サポートによって
ロードされる特定のライブラリが, 次の場合に, 転送された
エージェントのソケットを介してリモートでのコード実行するのに
悪用される可能性がある状況を修正する.

* Exploitation requires the presence of specific libraries on
  the victim system.
* Remote exploitation requires that the agent was forwarded
  to an attacker-controlled system.

* 悪用には被害を受けるシステム上に特定のライブラリが必要
* リモートでの悪用には, 攻撃者が管理するシステムへのエージェントの
  転送が必要

Exploitation can also be prevented by starting ssh-agent(1) with an
empty PKCS#11/FIDO allowlist (ssh-agent -P '') or by configuring
an allowlist that contains only specific provider libraries.

悪用は, ssh-agent(1) を 空の PKCS#11/FIDO 許可リスト (ssh-agent -P '')
で起動したり, 特定のプロバイダのライブラリのみを含む許可リストを設定
することでも防げる.

This vulnerability was discovered and demonstrated to be exploitable
by the Qualys Security Advisory team. 

この脆弱性は Qualys Security Advisory team によって発見され,
悪用可能なことが示された.
 
In addition to removing the main precondition for exploitation,
this release removes the ability for remote ssh-agent(1) clients
to load PKCS#11 modules by default (see below).

悪用の主要な事前条件を除くのに加えて, このリリースは
リモートの ssh-agent(1) のクライアントが PKCS#11リモートモジュールを
ロードする機能をデフォルトで無効にする (次を参照).

Potentially-incompatible changes
--------------------------------

潜在的に非互換な変更

 * ssh-agent(8): the agent will now refuse requests to load PKCS#11
   modules issued by remote clients by default. A flag has been added
   to restore the previous behaviour "-Oallow-remote-pkcs11".

   ssh-agent(8): エージェントはデフォルトでリモートのクライアントから
   発行された PKCS#11 モジュールのロードの要求を拒否する.
   以前の動作を回復するための "-Oallow-remote-pkcs11" フラグが
   追加される.

   Note that ssh-agent(8) depends on the SSH client to identify
   requests that are remote. The OpenSSH >=8.9 ssh(1) client does
   this, but forwarding access to an agent socket using other tools
   may circumvent this restriction.

   ssh-agent(8) はリモートからの要求を識別するのに SSH クライアントに
   依存していることに注意. OpenSSH >= 8.9 の ssh(1) クライアントは
   これを行なうが, 他のツールを用いたエージェントソケットへの転送アクセス
   はこの制限を回避するかもしれない.

OpenSSH 9.3 リリース準備中 / Call for testing: OpenSSH 9.3

10 Mar, 2023 - 2 minutes

OpenSSH 9.3 がリリース準備中です.

Call for testing: OpenSSH 9.3

いまのところは大きな変化がないリリースとなりそうです.

# 暫定版: https://lists.mindrot.org/pipermail/openssh-unix-dev/2023-March/040628.html

Changes since OpenSSH 9.2
=========================

OpenSSH 9.2 からの変更点

New features
------------

新機能

 * ssh-keygen(1), ssh-keyscan(1): accept -Ohashalg=sha1|sha256 when
   outputting SSHFP fingerprints to allow algorithm selection. bz3493

   ssh-keygen(1), ssh-keyscan(1): アルゴリズムの選択を許すため
   SSHFP 指紋の出力時に -Ohashalg で sha1 か sha256 を許可する. bz3493
   (デフォルトでは両方出力される)
    
 * sshd(8): add a `sshd -G` option that parses and prints the
   effective configuration without attempting to load private keys
   and perform other checks. This allows usage of the option before
   keys have been generated and for configuration evaluation and
   verification by unprivileged users.

   sshd(8): `sshd -G` オプションを追加する. これは, 秘密鍵のロードや
   他のチェックの実行なしで有効な設定をパースし出力する.
   鍵が生成される前や, 設定の評価, 非特権ユーザによる検証に
   このオプションは利用できる.

Bugfixes
--------

バグ修正

 * scp(1), sftp(1): fix progressmeter corruption on wide displays;
   bz3534

   scp(1), sftp(1): 広いディスプレイでのプログレスメーターの問題を修正
   bz3534

 * ssh-add(1), ssh-keygen(1): use RSA/SHA256 when testing usability
   of private keys as some systems are starting to disable RSA/SHA1
   in libcrypto.

   ssh-add(1), ssh-keygen(1): 一部のシステムで libcrypto の RSA/SHA1
   が無効化され始めているので, 秘密鍵の利用可能性のテストに
   RSA/SHA256 を利用する.

 * sftp-server(8): fix a memory leak. GHPR363

   sftp-server(8): メモリリークを修正する. GHPR363

 * ssh(1), sshd(8), ssh-keyscan(1): remove vestigal protocol
   compatibility code and simplify what's left.

   ssh(1), sshd(8), ssh-keyscan(1): 名残りで残っていたプロトコル
   互換性コードを除去し, 残ったものを単純化する.

 * Fix a number of low-impact Coverity static analysis findings.
   
   Coverity 静的解析探索で見付かった低インパクトの問題を
   いくつか修正する.

 * ssh_config(5), sshd_config(5): mention that some options are not
   first-match-wins.

   ssh_config(5), sshd_config(5): 一部のオプションは最初にマッチしたものが
   使われるわけではないことを言及する.

 * Rework logging for the regression tests. Regression tests will now
   capture separate logs for each ssh and sshd invocation in a test.

   再帰テストのログを再度動くようにする. 再帰テストは今やテストでの
   それぞれの ssh と sshd の工藤で別々のログを捕捉するようになる.

 * ssh(1): make `ssh -Q CASignatureAlgorithms` work as the manpage
   says it should; bz3532.

   ssh(1): `ssh -Q CASignatureAlgorithms` を man にあるように動くように
   する; bz3532

 * ssh(1): ensure that there is a terminating newline when adding a
   new entry to known_hosts; bz3529

   ssh(1): known_hosts に新しいエントリを追加する際, 終端の改行がある
   のを保証する; bz3529

Portability
-----------

移植性

 * sshd(8): harden Linux seccomp sandbox. Move to an allowlist of
   mmap(2), madvise(2) and futex(2) flags, removing some concerning
   kernel attack surface.

   sshd(8): Linux の seccomp サンドボックスを教科する. 
   mmap(2) と madvise(2), futex(2) フラグの許可リストへ移動し,
   いくつかの関連するカーネル攻撃の対象を除去する.

 * sshd(8): improve Linux seccomp-bpf sandbox for older systems;
   bz3537

   sshd(8): 古いシステムに対する seccomp-bpf サンドボックスを
   改善する; bz3537

OpenSSH 9.1 リリース準備中 / Call for testing: OpenSSH 9.1

28 Sep, 2022 - 8 minutes

OpenSSH 9.1 がリリース準備中です.

Call for testing: openssh-9.1

バグ修正のリリースです.

https://lists.mindrot.org/pipermail/openssh-unix-dev/2022-September/040428.html

Potentially-incompatible changes
--------------------------------

潜在的に非互換の変更

 * The portable OpenSSH project now signs commits and release tags
   using git's recent SSH signature support. The list of developer
   signing keys is included in the repository as .git_allowed_signers
   and is cross-signed using the PGP key that is still used to sign
   release artifacts:
   https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc

   移植版 OpenSSH プロジェクトは, git の最近の SSH 署名サポートを
   用いて 今後 commit と release tag に署名する. 開発者の署名鍵の
   リストは レポジトリに .git_allowed_signers として含まれ, 
   リリース に署名するのにまだ用いられている PGP 鍵を用いて
   クロス署名されている:
   https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc

 * ssh(1), sshd(8): SetEnv directives in ssh_config and sshd_config
   are now first-match-wins to match other directives. Previously
   if an environment variable was multiply specified the last set
   value would have been used. bz3438

   ssh(1), sshd(8): ssh_config と sshd_config 中の SetEnv 設定項目
   は今後他の設定項目に一致するよう最初の一致が勝つようになる.
   以前は複数設定された環境変数は最後に設定された値が用いられていた.
   bz3438

 * ssh-keygen(8): ssh-keygen -A (generate all default host key types)
   will no longer generate DSA keys, as these are insecure and have
   not been used by default for some years.

   ssh-keygen(8): ssh-keygen -A (すべてのデフォルトホスト鍵のタイプを生成する)
   は DSA 鍵を生成しなくなっている. これは安全ではなく数年にわたりデフォルトでは
   利用されなくなっている.

New features
------------

新機能

 * ssh(1), sshd(8): add a RequiredRSASize directive to set a minimum
   RSA key length. Keys below this length will be ignored for user
   authentication and for host authentication in sshd(8). 

   ssh(1), sshd(8): 最小の RSA 鍵長を設定する RequiredRSASize 設定項目
   を追加する. この長さを下回る鍵は sshd(8) のユーザー認証とホスト認証で
   無視される.

   ssh(1) will terminate a connection if the server offers an RSA key
   that falls below this limit, as the SSH protocol does not include
   the ability to retry a failed key exchange.

   ssh(1) は, この制限を下回る RSA 鍵がサーバから提供された場合,
   接続を切断する. SSH プロトコルは失敗した鍵交換をリトライする
   機能を含んでいない.

 * sftp-server(8): add a "users-groups-by-id@openssh.com" extension
   request that allows the client to obtain user/group names that
   correspond to a set of uids/gids.

   sftp-server(8): クライアントが uid/gid の集合に関連する
   user/group 名を得ることができる "users-groups-by-id@openssh.com" 
   拡張リクエストを追加する.

 * sftp(1): use "users-groups-by-id@openssh.com" sftp-server
   extension (when available) to fill in user/group names for
   directory listings.

   sftp(1): "users-groups-by-id@openssh.com" sftp-server 拡張
   (が利用できる場合) を用いてディレクトリの列挙に user/group 名を
   埋める.

 * sftp-server(8): support the "home-directory" extension request
   defined in draft-ietf-secsh-filexfer-extensions-00. This overlaps
   a bit with the existing "expand-path@openssh.com", but some other
   clients support it.

   sftp-server(8): draft-ietf-secsh-filexfer-extensions-00 で定義された
   "home-directory" 拡張リクエストをサポートする. これは, 既存の,
   他のいくつかのクライアントがサポートしている
   "expand-path@openssh.com" をちょっと上書きするが, 

 * ssh-keygen(1), sshd(8): allow certificate validity intervals,
   sshsig verification times and authorized_keys expiry-time options
   to accept dates in the UTC time zone in addition to the default
   of interpreting them in the system time zone. YYYYMMDD and
   YYMMDDHHMM[SS] dates/times will be interpreted as UTC if suffixed
   with a 'Z' character.

   ssh-keygen(1), sshd(8): 証明書の正当性期間と sshsig 検証の時間,
   authorized_keys の期限オプションで デフォルトのシステムのタイムゾーンでの
   解釈される日付に加えて UTC タイムゾーンでの日付を受け付けるようにする
   'Z' の文字が後置されていると YYYYMMDD と YYMMDDHHMM[SS]
   の日付/時間が UTC として解釈される.

   Also allow certificate validity intervals to be specified in raw
   seconds-since-epoch as hex value, e.g. -V 0x1234:0x4567890. This
   is intended for use by regress tests and other tools that call
   ssh-keygen as part of a CA workflow. bz3468

   また, 証明書の正当性期間で 16 進数の値, 例えば -V 0x1234:0x4567890,
   で生の seconds-since-epoch を指定できるようになる. 
   これは CA ワークフローの一部として ssh-keygen を呼ぶ回帰テストや
   その他のツールでの利用を意図している. bz3468

 * sftp(1): allow arguments to the sftp -D option, e.g. sftp -D
   "/usr/libexec/sftp-server -el debug3"

   sftp(1): sftp -D オプションに引数を許可する, 例えば 
   sfpt -D "/usr/libexec/sftp-server -el debug3".

 * ssh-keygen(1): allow the existing -U (use agent) flag to work
   with "-Y sign" operations, where it will be interpreted to require
   that the private keys is hosted in an agent; bz3429

   ssh-keygen(1): 既存の -U (use agent) オプションが "-Y sign" 操作と共に
   動作するようになる. エージェントに配置された秘密鍵を必要とすると解釈される.

Bugfixes
--------

バグ修正

 * ssh-keygen(1): implement the "verify-required" certificate option.
   This was already documented when support for user-verified FIDO
   keys was added, but the ssh-keygen(1) code was missing.

   ssh-keygen(1): "verify-required" 証明書オプションを実装する.
   これはすでに user-verified な FIDO 鍵の追加のサポートの際に
   文書化されていたが, ssh-keygen(1) のコードはなかった.

 * ssh-agent(1): hook up the restrict_websafe command-line flag;
   previously the flag was accepted but never actually used.

   ssh-agent(1): restrict_websafe コマンドラインオプンを有効にする;
   以前はオプションは受け付けていたが実際に利用されていなかった.

 * sftp(1): improve filename tab completions: never try to complete
   names to non-existent commands, and better match the completion
   type (local or remote filename) against the argument position
   being completed.

   ファイル名のタブ補完を改良する: 存在しないコマンドに対して名前の
   補完を試みないようになり, 補完される引数の位置に対して補完のタイプ
   (ローカルないしリモートのファイル名)によりよく一致するようになる.

 * ssh-keygen(1), ssh(1), ssh-agent(1): several fixes to FIDO key
   handling, especially relating to keys that request
   user-verification. These should reduce the number of unnecessary
   PIN prompts for keys that support intrinsic user verification.
   GHPR302, GHPR329

   ssh-keygen(1), ssh(1), ssh-agent(1): FIDO 鍵の扱いにいくつかの修正をする.
   特に user-verification を要求する鍵に関して.
   固有のユーザ検証をサポートする鍵に対する必要のない PIN prompt の数が
   減るはずだ.
   GHPR302, GHPR329

 * ssh-keygen(1): when enrolling a FIDO resident key, check if a
   credential with matching application and user ID strings already
   exists and, if so, prompt the user for confirmation before
   overwriting the credential. GHPR329

   ssh-keygen(1): FIDO resident 鍵を登録する際, 一致するアプリケーションの
   証明書とユーザ ID 文字列がすでに存在するかを検査し, 存在する場合
   証明書を上書きする前にユーザに確認の prompt を出す. GHPR329

 * sshd(8): improve logging of errors when opening authorized_keys
   files. bz2042

   sshd(8): authorized_keys ファイルを開く際のエラーのログを改善する.
   bz2042

 * ssh(1): avoid multiplexing operations that could cause SIGPIPE from
   causing the client to exit early. bz3454

   ssh(1):クライアントの早期終了を引き起こす SIGPIPE が発生する可能性のある
   多重化操作を咲ける. bz3454

 * ssh_config(5), sshd_config(5): clarify that the RekeyLimit
   directive applies to both transmitted and received data. GHPR328

   ssh_config(5), sshd_config(5): RekeyLimit 設定項目が
   転送されるデータと受信するデータの両方に適用されることを明確にする.
   GHPR328

 * ssh-keygen(1): avoid double fclose() in error path.

   ssh-keygen(1): エラーの場合に二重に fclose() していたのをやめる.

 * sshd(8): log an error if pipe() fails while accepting a
   connection. bz3447

   sshd(8): 接続を受け付ける際の pipe() の失敗をエラーとしてログする.
   bz3447

 * ssh(1), ssh-keygen(1): fix possible NULL deref when built without
   FIDO support. bz3443

   ssh(1), ssh-keygen(1): FIDO サポートなしでビルドした場合の
   NULL 逆参照の可能性を修正する. bz3443

 * ssh-keyscan(1): add missing *-sk types to ssh-keyscan manpage.
   GHPR294.

   ssh-keyscan(1): ssh-keyscan の man ページに欠けていた *-sk タイプ
   を追加する. GHPR294

 * sshd(8): ensure that authentication passwords are cleared from
   memory in error paths. GHPR286

   sshd(8): エラーの場合にメモリから認証パスワードを消すことを保証する.
   GHPR286

 * ssh(1), ssh-agent(1): avoid possibility of notifier code executing
   kill(-1). GHPR286

   ssh(1), ssh-agent(1): 通知コードが kill(-1) を実行する可能性をなくす.
   GHPR286

 * ssh_config(5): note that the ProxyJump directive also accepts the
   same tokens as ProxyCommand. GHPR305.

   ssh_config(5): ProxyJump 設定項目が ProxyCommand のように
   同じトークンを受け付けることを明記する. GHPR305.

 * scp(1): do not not ftruncate(3) files early when in sftp mode. The
   previous behaviour of unconditionally truncating the destination
   file would cause "scp ~/foo localhost:foo" and the reverse
   "scp localhost:foo ~/foo" to delete all the contents of their
   destination. bz3431

   scp(1): sftp モードの場合にファイルを早期に ftruncate(3) しないようにする.
   送信先のファイルを絶対に truncate する以前の振舞いでは, "scp ~/foo localhost:foo"
   と逆の "scp localhost:foo ~/foo" を実行すると送信先のすべての内容を削除してしまう.
   bz3431

 * ssh-keygen(1): improve error message when 'ssh-keygen -Y sign' is
   unable to load a private key; bz3429

   ssh-keygen(1): 'ssh-keygen -Y sign' が秘密鍵のロードをできなかった
   場合のエラーメッセージを改善する; bz3429

 * sftp(1), scp(1): when performing operations that glob(3) a remote
   path, ensure that the implicit working directory used to construct
   that path escapes glob(3) characters. This prevents glob characters
   from being processed in places they shouldn't, e.g. "cd /tmp/a*/",
   "get *.txt" should have the get operation treat the path "/tmp/a*"
   literally and not attempt to expand it.

   sftp(1), scp(1): リモートパスに対して glob(3) する操作を実行する際,
   暗黙の作業ディレクトリが glob(3) の文字をエスケープしたパスで
   構築されていることを保証する. これは glob の文字が 適用されるべきではない
   位置で処理されるのを防ぐ. 例えば "cd /tmp/a*/", "get *.txt" では
   get 操作は 文字通り パス "/tmp/a*" を扱い, 展開されてはならない.

 * ssh(1), sshd(8): be stricter in which characters will be accepted
   in specifying a mask length; allow only 0-9. GHPR278

   ssh(1), sshd(8): mask 長を指定する際に受け付ける文字を厳格にする;
   0-9 のみが有効. GHPR278

 * ssh-keygen(1): avoid printing hash algorithm twice when dumping a
   KRL

   ssh-keygen(1): KRL をダンプする際ハッシュアルゴリズムを
   2回表示するのを避ける.

 * ssh(1), sshd(8): continue running local I/O for open channels
   during SSH transport rekeying. This should make ~-escapes work in
   the client (e.g. to exit) if the connection happened to have
   stalled during a rekey event.

   ssh(1), sshd(8): SSH トランスポートの rekey 中に開いているチャンネルの
   ローカル I/O を継続する. 接続が rekey イベント中にストールした場合に
   クライアントでの ~~エスケープ (例えば 終了) が動作するようになる.

 * ssh(1), sshd(8): avoid potential poll() spin during rekeying

   ssh(1), sshd(8): rekey 中に可能性のある poll() spin を避ける

 * Further hardening for sshbuf internals: disallow "reparenting" a
   hierarchical sshbuf and zero the entire buffer if reallocation
   fails. GHPR287

   sshbuf 内部をより強固にする. 階層的な sshbuf の "reparenting" を
   無効にし, 再配置に失敗した場合バッファ全体をゼロで埋める.
   GHPR287

Portability
-----------

移植性

 * ssh(1), ssh-keygen(1), sshd(8): automatically enable the built-in
   FIDO security key support if libfido2 is found and usable, unless
   --without-security-key-builtin was requested.

   ssh(1), ssh-keygen(1), sshd(8): --without-security-key-builtin が
   要求されていなければ, libfido2 が発見され利用可能ならば
   自動的に組込みの FIDO セキュリティ鍵サポートが有効化される.

 * ssh(1), ssh-keygen(1), sshd(8): many fixes to make the WinHello
   FIDO device usable on Cygwin. The windows://hello FIDO device will
   be automatically used by default on this platform unless requested
   otherwise, or when probing resident FIDO credentials (an operation
   not currently supported by WinHello).

   ssh(1), ssh-keygen(1), sshd(8): Cygwin 上の WinHello FIDO デバイス
   を利用可能にする. windows://hello FIDO デバイスは, 他のものが要求
   されていないか, (WinHello によって現在サポートされていない操作の)
   resident FIDO credentials が探査されていない場合, Cygwin では
   自動的に利用される.

 * Portable OpenSSH: remove workarounds for obsolete and unsupported
   versions of OpenSSL libcrypto. In particular, this release removes
   fallback support for OpenSSL that lacks AES-CTR or AES-GCM.

   移植版 OpenSSH: OpenSSL libcrypto のすたれてサポートされていないバージョン向けの
   緩和策を除く. 特に AES-CTR と AES-GCM を欠いている OpenSSL の代替
   サポートをこのリリースでは除いている.

   Those AES cipher modes were added to OpenSSL prior to the minimum
   version currently supported by OpenSSH, so this is not expected to
   impact any currently supported configurations.

   それらの AES 暗号モードは, OpenSSH が現在サポートしている最低バージョンより
   前に OpenSSL に追加されており, 現在のサポートされている構成にはなにも影響しないと
   期待される.

 * sshd(8): fix SANDBOX_SECCOMP_FILTER_DEBUG on current Linux/glibc

   sshd(8): 現在の Linux/glibc 上での SANDBOX_SECCOMP_FILTER_DEBUG を修正する

 * All: resync and clean up internal CSPRNG code.

   全て: 内部の CSPRNG コードを再同期し整理する.

 * scp(1), sftp(1), sftp-server(8): avoid linking these programs with
   unnecessary libraries. They are no longer linked against libz and
   libcrypto. This may be of benefit to space constrained systems
   using any of those components in isolation.

   scp(1), sftp(1), sftp-server(8): 不要なライブラリをこれらのプログラムに
   リンクしないようにする. libz と libcrypto に対してもはやリンクされない.
   容量が限られたシステムでこれらのプログラムが独立に用いられる場合に
   利益があるだろう.

 * sshd(8): add AUDIT_ARCH_PPC to supported seccomp sandbox
   architectures.

   sshd(8): サポートする seccomp sandbox アーキテクチャーに
   AUDIT_ARCH_PPC を追加する.

 * configure: remove special casing of crypt(). configure will no
   longer search for crypt() in libcrypto, as it was removed from
   there years ago. configure will not only search libc and libcrypt.

   configure: crypt() の特別な場合を削除する. configure は
   libcrypto 内の crypt() をもはや検索していない. 数年前に削除されている.
   configure は libc と libcrypt だけを検索するのではない.

 * configure: refuse to use OpenSSL 3.0.4 due to potential RCE in its
   RSA implementation (CVE-2022-2274) on x86_64.

   configure:  x86_64 での RSA 実装の RCE の可能性 (CVE-2022-2274) のため
   OpenSSL 3.0.4 の利用を拒否する.

 * All: request 1.1x API compatibility for OpenSSL >=3.x; GHPR#322

   全て: OpenSSL >=3.x に対して 1.1x API 互換性を要求する; GHPR#322

 * ssh(1), ssh-keygen(1), sshd(8): fix a number of missing includes
   required by the XMSS code on some platforms.

   ssh(1), ssh-keygen(1), sshd(8): いくつかのプラットフォームで
   XMSS コードで必要とされる多数の欠けていた include を修正する.

 * sshd(8): cache timezone data in capsicum sandbox.

   sshd(8): capsicum sandbox でタイムゾーンのデータをキャッシュする.